我已经为此工作了几个小时,但没有成功。
我想让屏幕上出现一个像素,但绘画组件不起作用我不明白为什么。
setupFrame
方法是从 main 方法中调用的。
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);
}
最佳答案
您正在重载您创建的类(我们称之为MyPanel
)中的paintComponent()
,但您正在创建另一个类的实例:
JPanel panel = new JPanel();
所以这里没有 MyPanel 的实例,并且没有调用该方法。您需要使用重载了paintComponent方法的类:
MyPanel panel = new MyPanel();
或者(这应该是等效的):
JPanel panel = new MyPanel();
关于java - JPanel 不调用 java 中的paintComponent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58198196/