Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaBoxLayout给出了不正确的结果_Java_Swing_Alignment_Jpanel_Boxlayout - Fatal编程技术网

JavaBoxLayout给出了不正确的结果

JavaBoxLayout给出了不正确的结果,java,swing,alignment,jpanel,boxlayout,Java,Swing,Alignment,Jpanel,Boxlayout,我有两个JPanel,我想安排,一个在另一个上面,在一个更大的JPanel里面。“面板控制”覆盖.getPreferredSize()。代码: 不幸的是,布局是水平设置的。只有当我调整JPanel的大小时,组件才会全部放在正确的位置(在本例中是垂直的) 我在文档中读到了以下内容:“BoxLayout试图使列中的所有组件与最宽的组件一样宽。如果失败,它会根据它们的X对齐方式将它们水平对齐” 那么,失败的条件是什么?如何强制它垂直对齐 谢谢,试试看 this.setLayout( new BoxLa

我有两个JPanel,我想安排,一个在另一个上面,在一个更大的JPanel里面。“面板控制”覆盖.getPreferredSize()。代码:

不幸的是,布局是水平设置的。只有当我调整JPanel的大小时,组件才会全部放在正确的位置(在本例中是垂直的)

我在文档中读到了以下内容:“BoxLayout试图使列中的所有组件与最宽的组件一样宽。如果失败,它会根据它们的X对齐方式将它们水平对齐”

那么,失败的条件是什么?如何强制它垂直对齐

谢谢,

试试看

this.setLayout( new BoxLayout(this, BoxLayout.Y_AXIS));
基本上,您正在创建一个未使用和未引用的BoxLayout新实例。

试试看

this.setLayout( new BoxLayout(this, BoxLayout.Y_AXIS));

您基本上是在创建一个未使用和未引用的BoxLayout的新实例。

您不需要将
这个
放在方法调用之前。这并不意味着什么。@SteveKuo OP在其他通话中使用了
这个
。有时添加它是为了清晰。+1,如果您没有专门设置布局管理器,那么JPanel将使用FlowLayout。它不会澄清任何内容,因为该方法可以是静态的、继承的或在此类中定义的。您不需要在方法调用之前放置
this
。这并不意味着什么。@SteveKuo OP在其他通话中使用了
这个
。有时添加它是为了清晰。+1,如果您没有专门设置布局管理器,那么JPanel将使用FlowLayout。它不会澄清任何内容,因为该方法可能是静态的、继承的或在此类中定义的。您不应该覆盖“panel_控件”的首选大小。如果您正确使用布局管理器,布局管理器将确定首选大小。您不应覆盖“面板控制”的首选大小。如果正确使用布局管理器,布局管理器将确定首选大小。