如何使用Swing基于父级设置组件大小

时间:2017-06-30 16:35:18

标签: java swing

假设我有一个可调整大小的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中的组件,那就太好了。

0 个答案:

没有答案