0
String[] titles = {"System Code","Domain Name","Organizational Unit","Organization Name"};
        for(int i=0; i<titles.length; i++)
        {
            TableColumn column = new TableColumn(table, SWT.LEFT, i);
            column.setText(titles[i]);
            column.setWidth(150);
            column.setMoveable(true);
            column.setResizable(true);
        }

このコードは私にとってはうまくいきますが、このようなTableColumの配列が必要です

    Table table;
    TableColumn[] columns;
    table = new Table(composite, SWT.NONE);
    columns = new TableColumn[noOfColumns];
    table.setHeaderVisible(true);

しかし、テーブルに関連付けられていないことがわかります。これらすべてをテーブルの列に関連付けるにはどうすればよいですか??

4

1 に答える 1

2

列を配列にする限り、

    String[] titles = {"System Code","Domain Name","Organizational Unit","Organization Name"};
    TableColumn[] columns = new TableColumn[titles.length];
    for(int i=0; i<titles.length; i++)
    {
        TableColumn column = new TableColumn(table, SWT.LEFT, i);
        column.setText(titles[i]);
        column.setWidth(150);
        column.setMoveable(true);
        column.setResizable(true);
        columns[i] = column;
    }

2 番目の部分では、その配列をテーブルに取り込もうとしていますか?


javax.swing.table.TableColumn を使用していますか? setText および setMoveable メソッドがないようです。それを使用していて、コードでそれを修正した場合は、次のコードを for ループ (最後) に追加するだけです。

tableInstance.addColumn(column);

または、後で/後で別の反復を実行します。

for( TableColumn column : columns ) {
    tableInstance.addColumn(column);
}

JTable クラスのインスタンスの場合は tableInstance

これは、私が見つけたすべての問題を修正した完全なクラスです(フレーム宣言など、すべてを必要とするわけではありませんが、すべてを表示するためだけです):

public class TableTest {
    public static void main(String[] args) {
        JFrame f = new JFrame();
        JTable table = new JTable();
        JScrollPane scroll = new JScrollPane(table);
        String[] titles = {"System Code","Domain Name","Organizational Unit","Organization Name"};
        TableColumn[] columns = new TableColumn[titles.length];
        for(int i=0; i<titles.length; i++)
        {
            TableColumn column = new TableColumn(i);
            column.setHeaderValue(titles[i]);
            column.setWidth(150);
            column.setResizable(true);
            columns[i] = column;
            table.addColumn(column);//since we add this here, no real point in keeping
                                    //the columns in an array tbh anymore
        }
        f.add(scroll);
        f.setSize(500, 500);
        f.setVisible(true);
    }
}
于 2012-08-07T04:17:02.410 に答える