0

我注意到,当我paintComponent在 java 中使用时,如果我使用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?");
}
}
4

1 回答 1

2

System.out.println被调用一次 - 但您的方法可以重复调用。每次paintComponent都称为打印Why?

此方法被多次调用,即,用于调整帧大小等,从而使其看起来sysout被多次执行。

于 2013-08-09T18:58:31.660 回答