我尝试使用JLabel’s之后尝试在屏幕上绘制图像,现在正在尝试paintComponent方法。我在看不到任何结果并且该方法没有被调用之后尝试插入断点,并且什么也没有出现。我该怎么办?这是我的重要代码-
`
public void createWindow(){ frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLocationRelativeTo(null); frame.pack(); frame.setSize(xSize, ySize); frame.setLocation(0, 0); frame.addComponentListener(this); //frame.add(im); }
public void paintComponent(Graphics g) { super.paintComponent(g); g.drawImage(placeholder, 0, 0, getWidth(), getHeight(), null); g.drawString("Hello", 100, 100); }
另外,如果有区别,我正在使用JFrame而不是JPanel或组件。
JFrame没有paintComponent方法。您应该避免直接绘制到框架上,而应使用JPanel和覆盖其paintComponent方法
JFrame
paintComponent
JPanel
您还应该使用@Override批注,如果父类没有您要覆盖的方法,则会引发编译器异常…