java - 布局 Swing java

标签 java swing awt layout-manager

我想创建一个这样的布局

i want like this

这是我的代码(不起作用):

outer.setLayout(new BorderLayout());

panel1 = new JPanel();
...
outer.add(panel1, BorderLayout.PAGE_START);
outer.add(panel2, BorderLayout.LINE_START); 
outer.add(panel3, BorderLayout.CENTER); 
outer.add(panel4, BorderLayout.LINE_END); 
outer.add(panel5, BorderLayout.PAGE_END);  

注意:上面的 panel5 中应包含另外 2 个面板

在上面的代码中,我可以将它们放在正确的位置,但是中心的(panel3)非常大,因此所有其他的都被挤到一边。

我如何获得这些尺寸的一些比例,例如 2:10:2 等?

我应该改变布局吗?

最佳答案

如果您想做类似的事情,使用 BorderLayout 是一个好的开始。所以是的,我也会在这里使用 BorderLayout。

但是您应该更改添加面板的方式:

outer.add(panel1, BorderLayout.NORTH);
outer.add(panel2, BorderLayout.WEST);
outer.add(panel3, BorderLayout.CENTER);
outer.add(panel4, BorderLayout.EAST);
//Create a additional Panel for the two at the bottom
JPanel southPanelContainer = new JPanel(new BorderLayout());
southPanelContainer.add(panel5, BorderLayout.EAST);
southPanelContainer.add(panel6, BorderLayout.WEST);
outer.add(southPanelContainer, BorderLayout.SOUTH);

这看起来应该已经有点不错了,但是如果您仍然想改变它的外观,那么您应该向这些面板添加一些组件。布局管理器将自动调整面板大小,以便一切都适合。

关于java - 布局 Swing java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45814855/

相关文章:

java - 返回 null 的构建器模式

Java全屏独占模式和Ubuntu 14.04

java - 如何使用 log4j 在我的项目目录中写入文件?

java - 标题栏是否占用了jframe的一些空间?

Java JPanel动画

Java-获取图形

java - 在 Java 代码中从 scala.collection.Seq<String> 转换为 java.util.List<String>

java - FlowLayout 在 GridBagLayout 中不使用多行

java - 设置背景颜色/图像

Java 用纹理绘制线条