我有两个我希望安排的JPanel,一个在另一个之上,在一个更大的JPanel内。 “panel_controls”会覆盖.getPreferredSize()。代码:
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对齐水平对齐它们”
失败的条件是什么?如何强制它垂直对齐?
谢谢,
答案 0 :(得分:3)
试
this.setLayout( new BoxLayout(this, BoxLayout.Y_AXIS));
您基本上是在创建一个未使用和未引用的BoxLayout新实例。