我注意到当我在java中使用paintComponent
时,如果我使用System.out.println();
,则会打印出2次,3次,有时4次。我知道当你使用extends JPanel
时会自动调用它,但为什么会多一次。
以下是一些自己尝试的代码。
import javax.swing.*;
import java.awt.*;
public class stack extends JPanel{
public stack(){
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.add(this);
frame.setLocationRelativeTo(null);
frame.setSize(200, 200);
}
public static void main(String args[]){
stack s = new stack();
}
public void paintComponent(Graphics g){
super.paintComponents(g);
g.drawString("Thank You!", 100, 100);
System.out.println("Why?");
}
}
答案 0 :(得分:2)
System.out.println
被调用一次 - 但您的方法可以重复调用。每次调用paintComponent
时,都会打印Why?
。
这种方法被多次调用,即用于帧大小等等,反过来使sysout
被执行多次。