paintComponent代码不起作用

时间:2017-12-07 09:39:43

标签: java image swing paintcomponent

我是Swing的新手并尝试将图片背景添加到JFrame。但是我的paintComponent方法无效。您能否就如何修复我的代码给我一些建议,以便在背景中绘制图像?

代码如下:

// all necessary imports have been added.
public class Menu extends JFrame  {
private Image backgroundImage;
private JFrame frame;

public static void main(String[] args) throws IOException {
    Menu window = new Menu();
    window.frame.setVisible(true);
}

public Menu() throws IOException {
    initialize();
}

public void initialize() throws IOException {

    frame = new JFrame();
    frame.setBounds(100, 100, 312, 294);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().setLayout(null);

}
public void paintComponent(Graphics g) throws IOException {
    backgroundImage = ImageIO.read(new File("P:\\Profiles\\workspace\\Games\\Images\\matrix.jpg"));
    g.drawImage(backgroundImage, 0, 0, null);

}
}

1 个答案:

答案 0 :(得分:3)

覆盖paintComponent的{​​{1}}无效,请改写其内容窗格的JFrame

通常也不需要扩展paintComponent

最后,最好使用JFrame加载图像(而不是在每次绘制调用时加载它),如果需要,可以在内容面板上执行操作。

将所有内容放在一起,请参阅此示例:

initialize