BorderLayout和JPanel与JLabel

时间:2013-08-12 20:29:46

标签: java swing jpanel jlabel border-layout

我用:

BorderLayout a = new BorderLayout();
setLayout(a);
JPanel b = new JPanel();

现在,如果我使用:

JButton c = new JButton("Press");
b.add(c);
add("East", b);

我的JButton会正常显示。但如果我说:

JLabel c = new JLabel();
c.setBackground(Color.BLACK);
c.setOpaque(true);
add("East", b);

我的黑色JLabel不会出现,我想要。为什么会这样?非常感谢

1 个答案:

答案 0 :(得分:3)

JLabel c = new JLabel();

你有一个空标签,所以我猜测大小是否为(0,0)并且没有任何颜色可供绘制。尝试添加一些文字。

以下内容也是错误的:

add("East", b); 

这是添加约束的旧方法。不要使用硬编码值,并且第二个指定约束:

add(b, BorderLayout.???);

阅读Using a Border Layout上的BorderLayout API或Swing教程,了解相应的约束。