java 这种写法很耗资源吗?

来源:百度知道 编辑:UC知道 时间:2024/05/09 06:51:45
我添加了一个Label,(在网上找到的:)
JLabel label = new JLabel() {
private static final long serialVersionUID = 1L;
public String getText() {
String s="Node"+Parent.indexOfTabComponent(TabedTitle.this);
int w=this.getFont().getSize();
int ww=w*s.length();
this.setPreferredSize(new Dimension(ww,w+w));
this.revalidate();
return s;
}
};
结果在系统监视器里发现它一直占了28%-38%的cpu资源,内存占了85M,我一直不知道怎么回事,今天偶尔把它改成JLabel label=new JLabel();发现cpu占用终于正常了,而且内存也只占了40多M,请问是怎么回事?另外以前那种写法有个好处就是label的文字是可以实时改变的,改成后面这种就不好了。
找到原因了,删掉 this.setPreferredSize(new Dimension(ww,w+w));
this.revalidate();这两句就没事了

直接new也可以改变文字嘛

JLabel label = new JLabel("<html><body><font color='red'>红色</font></body></html>");

<font>标签有很多属性可以用的,会html都知道

因为你写了一个匿名类,所以程序运行起来够麻烦,所以资源占用率较大。
改变文字有很多的种该法,就想一楼说的那样....