当前位置: 技术问答>java相关
这样会不会内存泄漏?或有其他解决办法
来源: 互联网 发布时间:2015-10-07
本文导语: 问题如下: 有个JPanel,JScrollPane,JLabel生成,如下: JPanel pane = new JPanel; JLabel label1 = new JLabel(); JScrollPane jsp = new JScrollPane(label1); 我想把label1从jsp中去掉,然后添加lable12; JLabel label2=new JLabel("label2"); jsp.removeAll();...
问题如下:
有个JPanel,JScrollPane,JLabel生成,如下:
JPanel pane = new JPanel;
JLabel label1 = new JLabel();
JScrollPane jsp = new JScrollPane(label1);
我想把label1从jsp中去掉,然后添加lable12;
JLabel label2=new JLabel("label2");
jsp.removeAll();
jsp.add(label2);
可是界面上看不到label2,有可能是刷新的问题,尝试了好多次,不行。谁能解决?
这样差不多:
pane.remove()//remove jsp;
jsp = new JScrollPane(label2);
pane.add(jsp);
但问题是我切换比较频繁,而且要在6个JLabel之中切换,解决就给分
有个JPanel,JScrollPane,JLabel生成,如下:
JPanel pane = new JPanel;
JLabel label1 = new JLabel();
JScrollPane jsp = new JScrollPane(label1);
我想把label1从jsp中去掉,然后添加lable12;
JLabel label2=new JLabel("label2");
jsp.removeAll();
jsp.add(label2);
可是界面上看不到label2,有可能是刷新的问题,尝试了好多次,不行。谁能解决?
这样差不多:
pane.remove()//remove jsp;
jsp = new JScrollPane(label2);
pane.add(jsp);
但问题是我切换比较频繁,而且要在6个JLabel之中切换,解决就给分
|
class xxxx extends JLable
xxxx 里重载六个方法,用来设置六种label。
再另行控制label的变换。
这样就不必频繁删除label又添加了。
xxxx 里重载六个方法,用来设置六种label。
再另行控制label的变换。
这样就不必频繁删除label又添加了。
|
将你第一种方法改成这样试试:
jsp.getViewport().removeAll();
jsp.getViewport().add(label2, null);
另外JAVA是不会有内存泄露的,垃圾收集器会自动释放这些内存。
jsp.getViewport().removeAll();
jsp.getViewport().add(label2, null);
另外JAVA是不会有内存泄露的,垃圾收集器会自动释放这些内存。