【Java/Swing】在窗口推出前记住窗口位置和大小以便下次打开时定位
【主要工具】
java.util.prefs.Preferences
【参考资料】
http://wjhsh.net/heyang78-p-3540069.html
【作用】
使用注册表或用户文件记住用户的偏好
【代码】
package com.hy.lab.gui.closeevent; import javax.swing.*; import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.util.prefs.Preferences; public class GuiDemo3 extends JFrame { public GuiDemo3(){ // 设置标题 super("窗口标题"); // 窗口的引用 final JFrame thisWindow=this; // 退出程序前执行一些事情 this.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { super.windowClosing(e); // do sth before exit Preferences prefs= Preferences.userNodeForPackage(GuiDemo3.class); Point left=thisWindow.getLocation(); prefs.putInt("left.x",left.x); prefs.putInt("left.y",left.y); Dimension dm=thisWindow.getSize(); prefs.putInt("size.width",dm.width); prefs.putInt("size.height",dm.height); // close window thisWindow.setVisible(false); thisWindow.dispose(); System.exit(0); } }); // 根据内部组件调整窗口 pack(); Preferences prefs= Preferences.userNodeForPackage(GuiDemo3.class); // 窗口左上角定位 setLocation(prefs.getInt("left.x",100),prefs.getInt("left.y",100)); // 窗口大小调整 setSize(prefs.getInt("size.width",400),prefs.getInt("size.height",300)); } public static void main(String[] args){ // 让窗口可见 new GuiDemo3().setVisible(true); } }
【图例】
END
分类:
Java.Swing
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2020-01-21 [Oracle/SQL]找出id为0的科目考试成绩及格的学生名单的四种等效SQL语句
2017-01-21 为什么一个目录里放超过十个Mp4文件会导致资源管理器和播放程序变卡变慢?
2015-01-21 【高中数学/函数/幂函数】若a=(1/2)^2/3,b=(1/5)^2/3,c=(1/2)^1/3,则a,b,c的大小关系是?
2015-01-21 【Canvas与艺术】蓝色渐变单脚四钉正方形中写盈字
2014-01-21 【Canvas与艺术】双齿轮啮合传动