设置opaque时,如何避免JLabel填充父JLabel?

时间:2015-12-28 09:46:55

标签: java swing

我向JLabel2添加JLabel1JLabel1的背景为图片,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);

1 个答案:

答案 0 :(得分:0)

如果您希望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);