Java 当设置不透明为true时,如何避免JLabel填充父JLabel?

Java 当设置不透明为true时,如何避免JLabel填充父JLabel?,java,swing,Java,Swing,我将JLabel2添加到JLabel1JLabel1有一个图像背景,而JLabel2显示文本,但我也希望它显示JLabel2背景。 但当我将JLayout2的不透明属性设置为true时,它将填充JLabel1并与图像重叠。所以,问题是如何避免它? 这是代码: JLabel1.setLayout(new BorderLayout()); JLable2.setVerticalAlignment(SwingConstants.CENTER); JLable2.setHorizontalAlig

我将
JLabel2
添加到
JLabel1
JLabel1
有一个图像背景,而
JLabel2
显示文本,但我也希望它显示
JLabel2
背景。
但当我将
JLayout2
的不透明属性设置为true时,它将填充
JLabel1
并与图像重叠。所以,问题是如何避免它?
这是代码:

 JLabel1.setLayout(new BorderLayout());
 JLable2.setVerticalAlignment(SwingConstants.CENTER);
 JLable2.setHorizontalAlignment(SwingConstants.CENTER);
 JLable2.setFont(JLable2.getFont().deriveFont(15f));
 JLable2.setOpaque(true);
 JLabel1.add(JLable2);
 JLabel1.setOpaque(true);

如果您想在另一个
JLabel
中插入一个
JLabel
,并且都带有背景图像,则以下代码应该可以工作:

frame.setLayout(new BorderLayout());
JLabel l1 = new JLabel(new ImageIcon("File1.jpg"));
frame.setContentPane(bg);
frame.setLayout(new FlowLayout());
JLabel l2=new JLabel(new ImageIcon("File2.jpg"));
b1.add(l2);

当一个组件是不透明的,它不再是透明的,这就是重点。我不太了解你的设置,两个标签都有自己的背景图像?在这种情况下,为什么您关心第二个标签是不透明的?我的目的是显示
JLabel2
重叠
JLabel1
,同时仍然可以看到
JLabel1
JLabel2
的大小较小,背景颜色用于指定某些状态。啊,好的,使用不同的布局管理器,然后使用
BorderLayout
,可能是
GridBagLayout
,这样它就不会覆盖
JLabel1
变量名的整个区域,而不应该以大写字符开头!