0

Javaでグラフィックスを実際に使用するのはこれが初めてです。

JScrollPane に未定義の数のパネルを設定しようとしているという問題があります (次のコードは単なるテストです。悪い慣行を使用して書かれていることは知っていますが、それを行う方法を確認するためのテストです)。

最終的なプログラムでは、注文の ArrayList (ArrayList のサイズは事前に決定されていません) を作成し、JScrollPane では、各注文の詳細を持つ JPanel (それぞれに複数のラベルを含む) を保持する JPanel を作成します。 .

現在のテスト コードは次のとおりです (JScrollPane は単純に scrollPane という名前です)。

    JPanel panel = new JPanel();
    GroupLayout experimentLayout = new GroupLayout(panel);
    ArrayList<JPanel> panelArray = new ArrayList();

    for(int i = 0; i <3; i++){
        JPanel panel2 = new JPanel();
        JLabel label2 = new JLabel("Hello");
        JLabel label3 = new JLabel("Hi");
        panel2.add(label2);
        panel2.add(label3);
        //panel.add(panel2);
        panelArray.add(panel2);

    }

        experimentLayout.setHorizontalGroup(
            experimentLayout.createParallelGroup()
                .addComponent(panelArray.get(0))
                .addComponent(panelArray.get(1))
                .addComponent(panelArray.get(2))
           );

        experimentLayout.setVerticalGroup(
            experimentLayout.createSequentialGroup()
                                                                                                 //.addGroup(experimentLayout.createParallelGroup(GroupLayout.Alignment.LEADING)
                .addComponent(panelArray.get(0))
                .addComponent(panelArray.get(1))
                .addComponent(panelArray.get(2))
            );

        scrollPane.setViewportView(panel);

これを実行すると、ラベルを含む JPanel が互いに下に表示されるのではなく、横に (隣り合わせに) 表示されます。

それらを垂直に表示する方法についての助けは大きな助けになるでしょう - ありがとうございました:)

4

1 に答える 1

1

GridLayout が役立つ場合があります。

于 2012-11-15T20:54:52.110 に答える