java - BorderLayout 和 JPanel 与 JLabel

标签 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 不会出现,但我想这样做。为什么会这样?非常感谢

最佳答案

JLabel c = new JLabel();

你有一个空标签,所以我猜测大小 if (0, 0) 并且没有任何东西可以绘制。尝试添加一些文本。

另外,以下是不正确的:

add("East", b); 

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

add(b, BorderLayout.???);

阅读 BorderLayout API 或有关 Using a Border Layout 的 Swing 教程以获得适当的约束。

关于java - BorderLayout 和 JPanel 与 JLabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18196124/

相关文章:

java - 如何忽略像 "car":{}, 这样的空 json 对象,这些对象在使用 jackson 反序列化后会导致空的 pojo

java - 删除未使用的文件后,Drawables 链接失败

java - 如何正确使用 `HTMLEditorKit.insertHTML()` ?

java - 如何查看多边形中已经添加的点?

java - 无法查看添加到框架中心的第一个 JPanel

java - 展开 JFrame 后如何固定 JPanel 的位置

java - ExecutorCompletionService 挂起

java - 在 JPanel 中将 JLabel 居中

java - 向 jPanel 添加和删除元素

java - RPG调用Java,java.lang.NoClassDefFoundError