6

コンポーネントのリストを反復処理して、Swing GroupLayoutのParallelGroupに追加する方法はありますか?

ParallelGroupを入手する方法がないため、難しいようです。

コンポーネントのリスト(この場合はJCheckBoxes)を生成するコードは次のとおりです。

List<JCheckBox> listCustomiseJCB = new ArrayList<>();
    for (int w = 0; w < initialCMTableColumns.size(); w++) {
        String heading = (String)initialCMTableColumns.get(w).getHeaderValue();
        listCustomiseJCB.add(new JCheckBox(heading));
    }

リストは機能していますが、リストを反復処理して各JCheckboxをGroupLayoutのParallelGroupに挿入するにはどうすればよいですか?たとえば、以下のコードはコンパイルされません。

    GroupLayout gl = new GroupLayout(jpnlCustomise);
    jpnlCustomise.setLayout(gl);
    gl.setAutoCreateContainerGaps(true);
    gl.setAutoCreateGaps(true);

    GroupLayout.SequentialGroup hGroup = gl.createSequentialGroup();

    hGroup
            .addComponent(jbtnApply);
    hGroup.addGroup(gl.createParallelGroup(GroupLayout.Alignment.CENTER)
            // ERRORS BEGIN HERE
            { for (JCheckBox c: listCustomiseJCB) {
            .addComponent(c);
            }});
            // ERRORS END HERE
    hGroup
            .addComponent(jbtnCancel);

    gl.setHorizontalGroup(hGroup);

または、ParallelGroupを入手して、スタンドアロンのforループでそのグループにコンポーネントを繰り返し追加できるようにする方法を知っている人はいますか?

4

1 に答える 1

6

あなたが何をしようとしているのか、そしてあなたの混乱が分かります。new 演算子では匿名クラス構文のみを使用できます。すなわち

new LinkedList<String>() {
  {
     add("bar");
  }
};

ただし、ParallelGroup インスタンスは、ファクトリ メソッド createParallelGroup(...) でのみ作成できます。

並列グループへの一時的な参照を使用する必要があります。

ParallelGroup pGroup = gl
        .createParallelGroup(GroupLayout.Alignment.CENTER);
hGroup.addGroup(pGroup);
for (JCheckBox c : listCustomiseJCB) {
    pGroup.addComponent(c);
}
于 2012-04-10T19:15:06.377 に答える