如何用eclipse设置背景JFrame图片

时间:2013-10-31 04:49:49

标签: java swing

我的代码有问题,我是java编程的新手,但问题是我想设置一个bg图片,但我使用的代码消除了我放在JFrame中的所有其他内容。

panel.setSize(950, 600);
panel.setTitle("Nuevo Usuario Otto's");
panel.setResizable(false);
panel.setLocationRelativeTo(null);
try {
    panel.setContentPane(new JLabel(new ImageIcon(ImageIO.read(new File("C:\\CELLES_PROYECTO\\darkTrees.jpg")))));
} catch (IOException e) {

    e.printStackTrace();
}
panel.setResizable(false);
panel.pack();
panel.setVisible(true);

1 个答案:

答案 0 :(得分:0)

JLabel不支持子组件。而是使用JPanel作为内容窗格,并覆盖其paintComponent方法以绘制图像。

try {
    final Image backgroundImage = ImageIO.read(new File("C:\\CELLES_PROYECTO\\darkTrees.jpg"));
    setContentPane(new JPanel(new BorderLayout()) {
        @Override public void paintComponent(Graphics g) {
            g.drawImage(backgroundImage, 0, 0, null);
        }
    });
} catch (IOException e) {
    throw new RuntimeException(e);
}

上面的示例还将JPanel的布局设置为BorderLayout,以匹配默认的内容窗格布局。