设置JComponents的对齐方式

时间:2012-04-17 14:40:57

标签: java swing alignment border-layout

我想要一种使用Java Swing在GUI中表示组件的顺序方式。我目前正在使用带有BOX的BorderLayout。

我想要左边的JFileChooser,中间的JButtons和verticalFrame右边的JList。 Alignment

上图显示了我当前的组件对齐情况。

如果有人能告诉我如何根据我们的需要调整组件,那对我来说真的很有帮助。

根据m图,JList位于顶部,然后是b复选框,然后是JFileChooser,后跟三个按钮。

1 个答案:

答案 0 :(得分:3)

我的答案不是......,但BorderLayout

应该更好
  • JListEAST(或WEST)区域

  • JFileChooser到中心区域

  • {li>

    JPanel JButtons SOUTH(或NORTH)区域

可能会使用GridBagLayout(非常复杂的LayoutManager

易于使用MigLayout

修改

I am unable to add JList to EAST or WEST since the frame is not getting 
extended more than the JFileChooser.

问:你不能或有某些要求(e)或限制

答:我最初的想法是错的

enter image description here

来自代码

import java.awt.*;
import javax.swing.*;

public class BorderLayoutWithJComponents {

    public BorderLayoutWithJComponents() {
        String[] subItems1 = {"Red", "Blue", "Green", "Circle", "Square",
        "Triangle", "Apple", "Orange", "Banana"};
        JList list = new JList(subItems1);
        JFileChooser myFileChooser= new JFileChooser();
        JButton one = new JButton("One");
        JButton two = new JButton("Two");
        JButton three = new JButton("Three");
        JPanel panel = new JPanel();
        panel.add(one);
        panel.add( two);
        panel.add(three);
        JFrame f = new JFrame("LayoutTest");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.add(list, BorderLayout.WEST);
        f.add(myFileChooser, BorderLayout.CENTER);
        f.add(panel, BorderLayout.SOUTH);
        f.pack();
        f.setLocationRelativeTo(null);
        f.setVisible(true);
    }


    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {

            @Override
            public void run() {
              new  BorderLayoutWithJComponents();
            }
        });
    }
}