0

Java Swing を使用して、GUI でコンポーネントを順番に表す方法が必要です。私は現在、中央にBOXがあるBorderLayoutを使用しています。

VerticalFrame の左側に JFileChooser、中央に JButtons、右側に JList が必要です。 アライメント

上の図は、コンポーネントの現在の配置を示しています。

必要に応じてコンポーネントを配置する方法を教えていただければ、本当に助かります。

図によると、JList が一番上にあり、次にチェックボックス、JFileChooser、3 つのボタンが続きます。

4

1 に答える 1

3

私の答えは...ではありませんが、BorderLayout

  • JListEAST(またはWEST)エリアへ

  • JFileChooserセンターエリアへ

  • JPanelJButtonsSOUTHまたは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.

Q: できない、または何らかの要件や制限がありますか?

A: 私の最初のアイデアのどこが悪いのですか

ここに画像の説明を入力

コードから

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();
            }
        });
    }
}
于 2012-04-17T14:52:38.373 に答える