我正在尝试根据paint()
orpaintComponent()
方法中的一些计算来绘制和绘制一些几何形状。但是,我意识到paint()
or里面的打印和其他计算语句paintComponent()
被执行了 2 次或有时 3 次。例如,以下代码中的打印语句执行了两次,并且在控制台中打印了两次“帮助”一词:
public class Skeleton extends JPanel {
public void paint(Graphics g){
Graphics2D g2d = (Graphics2D) g;
g2d.drawOval(50, 50, 100, 100);
System.out.println("help");
}
然后在控制台中打印的部分是这样的:
help
help
这是我的main()
方法
public static void main(String[] args) {
JFrame frame = new JFrame("Java 2D Skeleton");
frame.add(new Skeleton());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(870, 890);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
更糟糕的是,如果我有一个类公共变量并且我在paint()
方法中将其值增加 1。这导致值增加了 2。我在这个网站的某个地方读到了该方法paint()
自动调用其他三种方法,我认为它们导致了这个问题。此外,我在另一个网站上尝试了一些建议的解决方案来覆盖 methodpaintComponent()
而不是 method paint()
。但是我仍然有同样的问题。请帮我修复它。