【发布时间】:2013-06-28 21:13:19
【问题描述】:
我创建了一个测试版本来简化我为你们遇到的问题:
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Test extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
JLabel l = new JLabel("hello");
JPanel cp;
public Test(){
setContentPane(cp = new JPanel());
cp.add(l);
setSize(200, 200);
setVisible(true);
}
public void paint(Graphics g){
//do absolutely nothing
}
}
当您启动程序时,您会看到一个完全空白的窗口。但是,如果您删除paint 方法,JLabel 就会出现! (真的,我不得不寻找这个错误很久了)。现在,我怎样才能使窗口既可以使用图形又可以定期绘制组件? 提前致谢
【问题讨论】:
-
您不应该覆盖顶级窗口的
paint(...)方法,因为它很少需要并且通常是有害的。有关更多信息,请参阅 Dave 的答案。
标签: java swing jframe paint paintcomponent