无法在Swing中向JPanel添加组件

时间:2012-06-27 23:34:16

标签: java swing jpanel jlabel

我想在运行时添加一个JLabel,在紫色窗格下面已经包含了一些组件,比如在进度条下面: enter image description here

以下是元素的结构:

enter image description here

这是我在事件发生时发出的代码(它通过调试检查到了):

    jPanel1.add(new JLabel("Stack Overflow"));
    jPanel1.revalidate();
    jPanel3.revalidate();

我没有看到任何变化,也不知道从哪里开始。当我放一个 在紫色窗格中的textarea然后在同一个地方调用它的setText()方法我尝试添加它工作的JLabel组件。

2 个答案:

答案 0 :(得分:3)

您需要了解有关布局及其工作原理的更多信息。我强烈建议您阅读整个布局管理器教程,因为在这里理解布局 解决方案,而使用BorderLayout并不是解决问题的方法。您可能希望嵌套布局,可能使用BorderLayout作为整个GUI,并且让中央JPanel使用BoxLayout来允许您在其中叠加组件。然后可能将此JPanel添加到在BorderLayout.CENTER位置使用BorderLayout的主JPanel。

答案 1 :(得分:0)

只是预感,但除了revalidate()之外,你可能还需要调用repaint()

Java Swing revalidate() vs repaint()