java JPanel不会显示在另一个JPanel之上
在我的界面中,我有一个带有空布局的JPanel作为背景标签持有者,没有其他组件。我试图在背景上添加一行图像作为网格布局。我已经确保图标在添加到JLabel时正常工作,但是当我尝试将网格面板添加到背景面板时,它不会显示图像。这是我目前的代码:
jPanel1 = new javax.swing.JPanel();
backgroundLabel = new javax.swing.JLabel();
backgroundLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Ile/Background.jpg")));
jPanel1.add(backgroundLabel);
这是背景,然后我尝试在上面添加图像网格:
JPanel gridPanel = new JPanel(new GridLayout(9,3));
JLabel ashes = new JLabel();
ImageIcon ashesIcon = new ImageIcon(getClass().getClassLoader().getResource("Resources/Ashes.png"));
ashes.setIcon(ashesIcon);
gridPanel.add(ashes);
jPanel1.add(gridPanel);
jPanel2.setVisible(true);
但是什么也没有显示出来,有什么建议吗
# 1 楼答案
不是基于你发布的代码。默认情况下,JPanel使用FlowLayout
如果希望组件显示在图像顶部,我可以想到三种解决方案:
在JPanel上绘制图像,然后设置布局管理器并添加其他组件
将背景标签添加到面板,然后设置标签的布局管理器,并将其他组件添加到标签(而不是面板)
使用覆盖层。此布局将允许您将多个组件添加到同一面板中,然后组件将在Z标注中相互堆叠。您需要使包含GridLayout的面板不不透明