假设我有一个可调整大小的JFrame GUI
,其大小为Dimension(x,y)
。我想将类 JPanelExtender
的对象插入 GUI
(最好使用BoxLayout)。为了简单起见,我们假设每个对象都有一个字段 percent
,它是0.0到1.0之间的双倍,所有percent
的总和是1。
如何使所有JPanelExtender始终完全具有Dimension(x*percent, y)
的大小,其中x和y是调整大小后更新的JFrame值?
我尝试在setSize(getParent().getHeight(), getParent.getWidth()*percent))
方法中使用paint(Graphics)
,并覆盖getPreferredSize()
方法但不起作用。
我有什么方法可以覆盖?我需要使用null布局吗?这对我JPanelExtender
中的组件有何影响?
一般来说,我对LayoutManagers如何为组件分配空间,哪些因素优先,以及如何自己控制这些事件感到困惑。
注意:我意识到这是一个非常抽象的问题,并且喜欢特定的示例和代码,但我真的想知道原则上我的实际程序需要这种多个面板上的东西,以便共享细节只会模糊我的问题的关键。任何对指南等的引用(我已经阅读过Oracle LayoutManager教程)都将不胜感激。
其他注意事项:如果我可以将此大小调整用于GridBagLayout中的组件,那就太好了。