Java 边界布局的使用

Java 边界布局的使用,java,user-interface,Java,User Interface,我的BorderLayout有问题,它被设置为绿色JPanel侧。它不以行顺序显示东面的元素。我必须把这个和GridBagLayout结合起来吗?有人能告诉我该如何解决这个问题吗 基本上,问题是当我使用时,在下面的绿色区域内显示对象 当前布局: 我的目标是实现这种布局: 对于多个组件,不要共享同一布局,对于左面板,使用方框布局来定位按钮 第一个问题是,您的面板共享一个布局。您必须为每个边框使用新的边框布局 第二个问题是,BorderLayout在每个约束位置只能有一个组件。尝试将多个零部

我的BorderLayout有问题,它被设置为绿色JPanel侧。它不以行顺序显示东面的元素。我必须把这个和GridBagLayout结合起来吗?有人能告诉我该如何解决这个问题吗

基本上,问题是当我使用时,在下面的绿色区域内显示对象 当前布局:

我的目标是实现这种布局:


对于多个组件,不要共享同一布局,对于左面板,使用方框布局来定位按钮



第一个问题是,您的面板共享一个布局。您必须为每个边框使用新的边框布局

第二个问题是,BorderLayout在每个约束位置只能有一个组件。尝试将多个零部件添加到西侧位置时,每个零部件都将替换以前位于该位置的零部件:

panel.add(BorderLayout.WEST,oriented_btn);

// Implicitly removes oriented_btn from panel
panel.add(BorderLayout.WEST,programming_btn);

// Implicitly removes programming_btn from panel
panel.add(BorderLayout.WEST,and_btn);

// Implicitly removes and_btn from panel
panel.add(BorderLayout.WEST,java_btn);
解决方案是将它们放在自己的容器中,例如带有GridLayout的Box或JPanel:

Box box = Box.createVerticalBox();
// Or:
//JComponent box = new JPanel(new GridLayout(0, 1));
box.add(oriented_btn);
box.add(programming_btn);
box.add(and_btn);
box.add(java_btn);

panel.add(BorderLayout.WEST, box);

不要对两个面板使用相同的边框布局
panel.add(BorderLayout.WEST,oriented_btn);

// Implicitly removes oriented_btn from panel
panel.add(BorderLayout.WEST,programming_btn);

// Implicitly removes programming_btn from panel
panel.add(BorderLayout.WEST,and_btn);

// Implicitly removes and_btn from panel
panel.add(BorderLayout.WEST,java_btn);
Box box = Box.createVerticalBox();
// Or:
//JComponent box = new JPanel(new GridLayout(0, 1));
box.add(oriented_btn);
box.add(programming_btn);
box.add(and_btn);
box.add(java_btn);

panel.add(BorderLayout.WEST, box);