gpt4 book ai didi

java - 关于最大化调整大小控件的 Swing 问题

转载 作者:行者123 更新时间:2023-12-04 01:31:10 26 4
gpt4 key购买 nike

我有一个具有以下布局和组件的 JFrame:

 _________________________________________ 
| __________________________________ |
| |JTree | Panel2 | * |
| |(Panel1)| (other controls) |<-> |
| |________|_______________________| |
|__________*_____________________________|

这些位于主 JFrame 的内容 Pane 中。
我想要的是当我最大化窗口时,这些组件相应地调整大小。
现在发生的是它们保持当前大小,并且在我有箭头和星星的地方有一个巨大的差距。(侧面和底部)。
我想保持包装。
我对内容 Pane 使用了空布局,并从可视化设计器中删除了组件。
如何使控件始终在 mazimize 时调整大小?

最佳答案

如果您希望两个面板具有相同的大小,每个面板占据主窗口的一半,请使用 GridLayout:

getContentPane().setLayout(new GridLayout(1,2));
getContentPane().add(Panel1);
getContentPane().add(Panel2);

如果您希望一个面板具有恒定宽度,请使用 BorderLayout:

getContentPane().setLayout(new BorderLayout());
getContentPane().add(Panel1,BorderLayout.EAST);
getContentPane().add(Panel2,BorderLayout.CENTER);

如果你想要更复杂的行为,例如要保持 1:2 的宽度比例,您将不得不使用 GridBagLayout,这是最强大但也是最复杂的布局:

getContentPane().setLayout(new GridBagLayout());
getContentPane().add(Panel1,new GridBagConstaints(0,0,1,1,1,1,GridBagConstraints.CENTER,GridBagLayout.BOTH,new Insets(0,0,0,0),0,0);
getContentPane().add(Panel2,new GridBagConstaints(1,0,1,1,2,1,GridBagConstraints.CENTER,GridBagLayout.BOTH,new Insets(0,0,0,0),0,0);

关于java - 关于最大化调整大小控件的 Swing 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5529919/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com