如何使用JPanel使java图像可见
我制作了一个以图像为背景的JPanel
。但在第一次加载JPanel时,添加的其余组件却看不到图像。将鼠标滚动到图像上后,按钮将可见。如何在加载面板时使JButtons
与作为背景的图像一起可见
以下是我的代码:
contentPane = new JPanel();
contentPane.setBorder(new SoftBevelBorder(BevelBorder.LOWERED, null, null, null, null));
setContentPane(contentPane);
contentPane.setLayout(null);
homePanel.setBounds(10, 11, 959, 620);
homePanel.setLayout(null);
JPanel wizardPanel = new JPanel();
wizardPanel.setBounds(10, 295, 545, 336);
wizardPanel.setLayout(null);
homePanel.add(wizardPanel);
JLabel backgroundLabel;
try {
backgroundLabel = new JLabel(new ImageIcon(ImageIO.read(new File("images/nature.jpg"))));
backgroundLabel.setBounds(0, 0, 545, 336);
wizardPanel.add(backgroundLabel);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
JButton btnNewButton = new JButton("New button");
btnNewButton.setBounds(309, 95, 89, 23);
wizardPanel.add(btnNewButton);
JButton btnNewButton_1 = new JButton("New button");
btnNewButton_1.setBounds(309, 150, 89, 23);
wizardPanel.add(btnNewButton_1);
JButton btnNewButton_2 = new JButton("New button");
btnNewButton_2.setBounds(309, 212, 89, 23);
wizardPanel.add(btnNewButton_2);
# 1 楼答案
把按钮放在标签上是个坏主意。更好的方法是将图像绘制为面板背景或使用JLayer。以下是第一个解决方案的示例:
# 2 楼答案
一个快速的解决方案可能是直接将
JFrame
内容窗格设置为图像,并将组件添加到此JFrame
的内容窗格中。假设您的代码来自JFrame
类的主体。我的建议大致如下:# 3 楼答案
这太疯狂了!!我把JButtons初始化代码块放在它工作的图像加载部分之上,使它工作