0

我有一个扩展 JPanel 的类,当我尝试将该类的一个特定实例设置为可见时,所有其他类也会扩展。想法?

在 'two' CENTER 设置为可见之前: 在“两个”打开之前

'two' CENTER 设置为可见后: 在此处输入图像描述

请注意所有其他实例都打开了。这是我可以用我的代码做的最好的事情,因为它非常抽象:

称呼 -

display.mainScrollPane.getMainPanel().getMachineListPanel().getMachine("two").panel.showPanel();
4

2 回答 2

0

原因是 MachineListPanel 实现了 GridLayout。根据定义,GridLayout 强制所有元素具有相同的高度和宽度——即。当其中一个组件的 CENTER 设置为可见时,还必须为布局中的所有其他元素分配空间。

于 2012-08-06T23:49:05.117 回答
0

没有你的sscce很难说。

  • 如果您正在使用BorderLayout,请注意 中的组件CENTER将扩展以填充可用空间。或者,考虑一下BoxLayout这里这里说明。

  • 如果您在 and 之后添加组件, 务必按照此处的建议执行and 。pack()setVisible()validate()repaint()

于 2012-08-03T20:37:12.393 回答