Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个扩展 JPanel 的类,当我尝试将该类的一个特定实例设置为可见时,所有其他类也会扩展。想法?
在 'two' CENTER 设置为可见之前:
'two' CENTER 设置为可见后:
请注意所有其他实例都打开了。这是我可以用我的代码做的最好的事情,因为它非常抽象:
称呼 -
display.mainScrollPane.getMainPanel().getMachineListPanel().getMachine("two").panel.showPanel();
原因是 MachineListPanel 实现了 GridLayout。根据定义,GridLayout 强制所有元素具有相同的高度和宽度——即。当其中一个组件的 CENTER 设置为可见时,还必须为布局中的所有其他元素分配空间。
没有你的sscce很难说。
如果您正在使用BorderLayout,请注意 中的组件CENTER将扩展以填充可用空间。或者,考虑一下BoxLayout,这里和这里说明。
BorderLayout
CENTER
BoxLayout
如果您在 and 之后添加组件,请 务必按照此处的建议执行and 。pack()setVisible()validate()repaint()
pack()
setVisible()
validate()
repaint()