在我的界面中,我有一个带有空布局的JPanel作为背景标签持有者,没有其他组件。我正在尝试在该背景上添加一行图像作为GridLayout。我确保添加到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);
但是没有任何建议,任何建议?
答案 0 :(得分:0)
我有一个带有空布局的JPanel作为背景标签持有者,
不基于您发布的代码。默认情况下,JPanel使用FlowLayout。
我正在尝试在该背景上添加一行图像作为GridLayout。
如果您希望组件显示在图像的顶部,那么我可以想到三种解决方案:
在JPanel上绘制图像,然后只需设置布局管理器并添加其他组件
将背景标签添加到面板,然后设置标签的布局管理器并将其他组件添加到标签(而不是面板)
使用OverlayLayout。此布局允许您将多个组件添加到同一面板,然后组件将在Z维度中堆叠在一起。您需要使包含GridLayout的面板不透明。