Tôi có một lớp đơn giản vẽ một hình ảnh trong một JPanel. Đây là lớp học của tôi:Ai đang gọi phương thức paintComponent() trong lớp của tôi?
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.JPanel;
class Drawing_panel extends JPanel {
public void paintComponent(Graphics g) {
super.paintComponent(g);
this.setBackground(Color.white);
g.setColor(Color.red);
g.fillRect(150, 80, 20, 20);
}
public Dimension getPreferredSize(){
return new Dimension(500,500);
}
}
Tôi đã lớp khác mà instantiates này một:
Drawing_panel dp = new Drawing_panel();
Không có constructor trong lớp Drawing_panel
và/hoặc không có cuộc gọi rõ ràng để một trong hai paintComponent()
hoặc getPreferredSize()
phương pháp. Tôi cho rằng phương thức này được gọi trong hàm khởi tạo của cha mẹ là JPanel
, nhưng tôi cũng không thấy các cuộc gọi ở đó.
hãy tìm hiểu các quy ước đặt tên java và gắn bó với chúng – kleopatra