我有两个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路线。”
什么失败的条件,然后呢?我如何强制它垂直对齐?
感谢,
您不应该重写“panel_controls”的首选大小。如果您正确使用布局管理器,布局管理器将确定首选大小。 – camickr