JPanel 在 java 中不调用 paintComponent



我已经为此工作了几个小时,但它不起作用。 我想在屏幕上显示一个像素,但油漆组件不起作用,我不明白为什么。 从 main 方法调用setupFrame方法。

public static void setupFrame()
{
JFrame frame = new JFrame("graphicsTest");
JPanel panel = new JPanel();
panel.setBounds(0, 0, 1080, 1080/2);
frame.add(panel);
frame.pack();
frame.setSize(1080, 1080/2);
frame.setVisible(true);
frame.setResizable(false);
frame.repaint();
}
@Override
public void paintComponent(Graphics g) {
g.fillRect(0, 0, 50, 50);
}  

您正在重载您创建的类中的paintComponent()(我们称之为MyPanel(,但您正在创建另一个类的实例:

JPanel panel = new JPanel();

所以这里没有MyPanel的实例,也没有调用该方法。您需要使用重载 paintComponent 方法的类:

MyPanel panel = new MyPanel();

或者(这应该是等效的(:

JPanel panel = new MyPanel();

最新更新