标签: java swing jpanel
我有一个扩展JPanel的类,当我尝试将该类的一个特定实例设置为可见时,所有其他类也会扩展。想法?
在“两个”之前,CENTER设置为可见:
在“两个”中间设置可见:
注意所有其他实例都打开了。这是我用我的代码做的最好的,因为它非常抽象:
致电 -
display.mainScrollPane.getMainPanel().getMachineListPanel().getMachine("two").panel.showPanel();
答案 0 :(得分:0)
没有你的sscce很难说。
如果您使用的是BorderLayout,请注意CENTER中的组件将展开以填充可用空间。或者,请考虑BoxLayout,图示为here和here。
BorderLayout
CENTER
BoxLayout
如果您要在 pack()和setVisible()之后添加组件,请务必按建议validate()和repaint() {{3 }}
pack()
setVisible()
validate()
repaint()
答案 1 :(得分:0)
原因是MachineListPanel实现了GridLayout。根据定义,GridLayout强制所有元素的高度和宽度相同 - 即。当其中一个组件的CENTER设置为可见时,还必须为布局中的所有其他元素分配空间。