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;
    }

不过,对于第二部分,您是否正在尝试将该数组放入您的表中?


你在使用 javax.swing.table.TableColumn 吗?因为它似乎没有 setText 和 setMoveable 方法。如果您正在使用它,并在代码中修复了它,只需将以下代码添加到 for 循环中(最后):

tableInstance.addColumn(column);

或者在之后/稍后进行另一次迭代:

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

tableInstance 如果您的 JTable 类的实例

这是一个完整的课程,其中包含我发现的所有问题(您不需要所有这些,例如框架声明,只是为了让您看到所有内容):

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 回答