Java 箱子内的项目布局面板不占用JPanel的宽度

Java 箱子内的项目布局面板不占用JPanel的宽度,java,swing,layout-manager,boxlayout,Java,Swing,Layout Manager,Boxlayout,下面的面板有BoxLayout,底部的按钮没有占据面板的宽度,而是左右两侧有间隙 JPanel面板=新的JPanel(); BoxLayout BoxLayout=新的BoxLayout(面板,BoxLayout.Y_轴); 面板设置布局(框布局); JPanel framesPanel[]=新的JPanel[8]; 对于(int i=0;iABoxLayout尊重组件的最大尺寸 按钮的最大尺寸与其首选尺寸相同 创建按钮时,可以执行以下操作: JButton button = new JBut

下面的面板有BoxLayout,底部的按钮没有占据面板的宽度,而是左右两侧有间隙

JPanel面板=新的JPanel();
BoxLayout BoxLayout=新的BoxLayout(面板,BoxLayout.Y_轴);
面板设置布局(框布局);
JPanel framesPanel[]=新的JPanel[8];

对于(int i=0;iA
BoxLayout
尊重组件的最大尺寸

按钮的最大尺寸与其首选尺寸相同

创建按钮时,可以执行以下操作:

JButton button = new JButton(...);
Dimension maximum = button.getMaximumSize();
maximum.width = Integer.MAX_VALUE;
button.setMaximumSize( maximum );
注:


如果您从不更改按钮的字体大小,这只是一个快速修复方法。为了获得正确的解决方案,您应该创建一个自定义按钮,扩展JButton并覆盖
getMaximumSize()
方法返回上述大小。如果按钮的属性动态更改,则此方法将起作用。

看起来您想检查JButtons是否具有“最大宽度”?我确实检查了演示示例,并尝试了不同的方法,但无法使按钮占据整个宽度。JButtons没有任何宽度“最大宽度”设置
JButton button = new JButton(...);
Dimension maximum = button.getMaximumSize();
maximum.width = Integer.MAX_VALUE;
button.setMaximumSize( maximum );