jpanel的一些事
来源:互联网 发布:网络直播平台搭建 编辑:程序博客网 时间:2024/05/01 15:30
1. 最近在用java swing做界面程序,通过在jframe里面add不同的jpanel来实现界面的切换。实现的方法是frame.removeAll(); frame.add(new subpanel()); 做的时候在想这样之前remove掉的panel的内存是不是释放掉了。于是,打开任务管理器发现,随着不断地切换界面,内存占用在不断增加。然后就到网上查看,发现有人也有这样的疑问,但是有一条回答说虚拟机的垃圾回收会在一段时间之后回收不用的资源。过了一会,又打开任务管理器发现内存果然变小了。第一次见识到gc的威力,也消除了我一个疑问。
随后在国外的网站上查了一些资料,对jpanel有了更深的了解。
2. Q:为什么jpanel不需要dispose()方法而jdialog需要
A:因为jdialog有一个本地的“映射”(native peer),某个与本地操作系统相关的窗口控件。而这个peer是在虚拟机之外的所以垃圾回收无法对它奏效,我们必须自己来。而jpanel就没有本地“映射”了,只要把它的引用设为null就可以实现自动回收。
详见:http://www.coderanch.com/t/341023/GUI/java/destroying-JPanel
3. Q:如何把一个jpanel上面的所有控件设置为统一的字体(注意,因为jpanel上面可能还有数层jpanel,所以需要递归)。
A:public staticfinal void setJPanelFont(JPanel aPanel,Font font)
{
Component c= null;
Component[] components= aPanel.getComponents();
aPanel.setFont(font);
if(components!= null)
{
int numComponents= components.length;
for(int i= 0; i< numComponents; i++)
{
c = components[i];
if(c!= null)
{
if(cinstanceof JPanel)
setJPanelFont((JPanel)c,font);
else
c.setFont(font);
}
}
}
}
- jpanel的一些事
- 具有背景的JPanel
- JPanel的使用
- 关于JPanel的使用
- 图片的拖动(JPANEL)
- 设置JPanel的背景
- JPanel 的getGraphics
- 定制半透明的JPanel
- Jpanel类的使用
- JPanel中添加一个新的JPanel,结果新的JPanel会自动占满父JPanel
- jpanel
- JPanel
- JPanel
- 可以设置背景的JPanel!!
- JPanel加载图像的过程
- JFrame与JPanel的区别
- JPanel加载图像的过程
- JPanel加载图像的过程
- 薄荷花开
- 处理空格的就地字符串处理函数的实现
- JavaScript中的匿名函数及函数的闭包
- 山区行
- 关于std::sort中的比较函数使用时的严格弱排序(strict weak order)
- jpanel的一些事
- 小宝,小宝,我爱你
- 用cobar搭建分布式数据库
- 我指间的刺青是对你的誓言
- poj 1717 Dominoes
- HMM,MEMM,CRF模型的比较(转)
- 异步下载图片小项目中遇到的问题总结
- 回归自然
- windows下SVN无法修改日志的问题