Я заметил, что когда я использую 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?");
}
}
Он вызывается каждый раз, когда компонент «перекрашивается», например. для изменения рамки ... – Reimeus
Оххх, спасибо –
@ DilanHanrahan Если бы мой ответ помог вам принять? –