我想在运行时添加一个JLabel,在紫色窗格下面已经包含了一些组件,比如在进度条下面:
以下是元素的结构:
这是我在事件发生时发出的代码(它通过调试检查到了):
jPanel1.add(new JLabel("Stack Overflow"));
jPanel1.revalidate();
jPanel3.revalidate();
我没有看到任何变化,也不知道从哪里开始。当我放一个 在紫色窗格中的textarea然后在同一个地方调用它的setText()方法我尝试添加它工作的JLabel组件。
答案 0 :(得分:3)
您需要了解有关布局及其工作原理的更多信息。我强烈建议您阅读整个布局管理器教程,因为在这里理解布局 解决方案,而使用BorderLayout并不是解决问题的方法。您可能希望嵌套布局,可能使用BorderLayout作为整个GUI,并且让中央JPanel使用BoxLayout来允许您在其中叠加组件。然后可能将此JPanel添加到在BorderLayout.CENTER位置使用BorderLayout的主JPanel。
答案 1 :(得分:0)
只是预感,但除了revalidate()之外,你可能还需要调用repaint()