我是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);
}
}
答案 0 :(得分:3)
覆盖paintComponent
的{{1}}无效,请改写其内容窗格的JFrame
。
通常也不需要扩展paintComponent
。
最后,最好使用JFrame
加载图像(而不是在每次绘制调用时加载它),如果需要,可以在内容面板上执行操作。
将所有内容放在一起,请参阅此示例:
initialize