Java BoxLayout给出不正确的结果
我有两个JPanel,我想在另一个JPanel中放置一个JPanel。 “panel_controls”重写.getPreferredSize()。代码:Java BoxLayout给出不正确的结果
public final class GUIPanelMain extends JPanel {
//...
private JPanel panel_images;
private JPanel panel_controls;
//...
private void addPanels() {
new BoxLayout(this,BoxLayout.Y_AXIS); //Bleh! Still is horizontal!
this.add(panel_images);
this.add(panel_controls);
}
//...
}
不幸的是,无论如何布局是水平设置的。只有当我调整JPanel的大小时,组件才会进入正确的位置(在这种情况下,垂直方向)。
我读的文档中的以下内容:“的BoxLayout尝试使所有组件一样宽,最宽的成分列如果失败,它对齐它们水平,与其X路线。”
什么失败的条件,然后呢?我如何强制它垂直对齐?
感谢,
尝试
this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
你基本上创建的BoxLayout的新实例,最后都用不上和未引用。
您不需要将'this'放在方法调用之前。它不表示任何东西。 –
@SteveKuo OP对其他呼叫有'this'。有时为了清晰起见,添加了它。 –
+1,如果你没有专门设置布局管理器,那么JPanel将使用FlowLayout。 – camickr
您不应该重写“panel_controls”的首选大小。如果您正确使用布局管理器,布局管理器将确定首选大小。 – camickr