1

我想在运行时在紫色窗格下添加一个 JLabel,其中已经包含一些组件,比如在进度条下: 在此处输入图像描述

这是元素的结构:

在此处输入图像描述

这是我的代码,当事件发生时发出(它到达那里我用调试检查):

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

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

4

2 回答 2

3

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

于 2012-06-28T00:01:13.523 回答
0

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

Java Swing revalidate() 与 repaint()

于 2012-06-27T23:40:05.713 回答