如何使BoxLayout中的垂直间隙变小?

Dot*_*NET 3 java user-interface swing layout-manager boxlayout

我有以下表单,它使用行垂直BoxLayout和FlowLayout JPanels:

在此输入图像描述

如何使每行之间的巨大差距变小?这是我的代码:

cam*_*ckr 11

问题是BoxLayout尊重组件的最大大小.由于面板没有最大尺寸,每个面板的高度增加以占用可用空间.

另一种解决方案是在将组件添加到面板后确定每个面板的最大大小:

pnlName.setMaximumSize( pnlName.getPreferredSize() );
pnlSurname.setMaximumSize( pnlSurname.getPreferredSize() );
pnlAge.setMaximumSize( pnlAge.getPreferredSize() );
Run Code Online (Sandbox Code Playgroud)


ben*_*n75 5

您可以使用胶水(不可见组件)来填充自由空间.看到这个文档

您也可以使用VerticalLayout而不是框布局.不幸的是,它在swing api中不存在,但是有很多免费实现这种布局可用.

例如:http://www.java2s.com/Code/Java/Swing-JFC/AverticallayoutmanagersimilartojavaawtFlowLayout.htm

  • +1建议和Swing教程的链接. (3认同)