1

JDialogアプリケーションの初期データを取得するための簡単なデータを作成しました。要素(、、JLabelおよびJTextField)は、の内側にJButton配置されます。(最後のコード)。これまでのところ、次のようになります。BoxLayoutBorderLayout

現在の取り決め

私には2つの問題があります:

  1. JButtonその列の中央に配置したいと思います。試してみstartBtn.setAlignmentX(Component.CENTER_ALIGNMENT);ましたが、正常に動作せず、ごちゃごちゃしてしまいます。

  2. に左/右のパディングを追加したいTextFieldこのトピックの最初の解決策は正常に機能しますが、他の要素は左右のパディング値に移動されます。

誰かがそれを配置する方法のヒントを与えることができますか?私はJavaを初めて使用するので、わかりません。

これが私のInitDialogクラスのコードです:

public class InitDialog extends JDialog {

    JTextField dataTF;
    JButton startBtn;

    public InitDialog(JFrame owner) {

        super(owner, "Rozpocznij test", Dialog.ModalityType.DOCUMENT_MODAL);
        initUI();

    }

    public final void initUI() {

        System.out.println("InitDialog::initUI");

        JPanel outer = new JPanel(new BorderLayout());
        JPanel inner = new JPanel();

        outer.setBorder(new EmptyBorder(new Insets(20, 20, 20, 20)));

        JLabel msg = new JLabel("<html>Podaj ilości liczb w zestawach testowych<br />(przedzielone średnikiem):");
        inner.add(msg);
        inner.add(Box.createVerticalStrut(15));

        dataTF = new JTextField();
        dataTF.setBorder(null);
        dataTF.setText("50; 100; 200");
        inner.add(dataTF);
        inner.add(Box.createVerticalStrut(15));

        startBtn = new JButton("Rozpocznij test");
        inner.add(startBtn);

        inner.setLayout(new BoxLayout(inner, BoxLayout.Y_AXIS));
        outer.add(inner);
        add(outer);

        setSize(300, 180);

        //setDefaultCloseOperation(DISPOSE_ON_CLOSE);

        addWindowListener(new WindowAdapter() {
            @Override public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });

        setResizable(false);
        setLocationRelativeTo(getRootPane());

    }

}
4

1 に答える 1

3

BoxLayoutの配置は、あなたが思っているものではありません。

あなたが望むものを手に入れるためにこれはあなたが必要とするラインです

msg.setAlignmentX(Component.CENTER_ALIGNMENT);
于 2013-01-06T17:40:06.980 に答える