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

标签 java swing user-interface layout-manager

我有一个具有以下布局和组件的 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/

相关文章:

java - 使用平移校准坐标系统后鼠标坐标停止工作-java

c++ - 用于 C++ 应用程序的 GUI 测试工具

c++ - 重置/清除 TabWidget 页面中的每个项目

java - 在swing界面中显示BLOB文件

java - 设置 ListView 元素的文本会使应用程序崩溃,测量 child 高度时出现 java 空指针异常

java - 为什么我的 Mario Sprite(JComponent)没有出现?

java - 使用 3 个面板创建 JSplitPane

html - 无法使用 CSS 创建页脚

java - 为什么我的代码中单线程比多线程更快?

Java EE 安全模型 Web 集合 : Difference URL pattern "/" and "/*"