我的代码有问题,我是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);
答案 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,以匹配默认的内容窗格布局。