请参阅其标题栏

时间:2014-08-08 10:22:08

标签: java swt

我有一张目前有11列的表格。 随着程序的发展,我发现自己需要添加更多列。

我这样做的问题是,如果我在第5位添加一个新列,我需要更改在第6,7,8列等中设置数据的代码。

我以这种方式设置列标题:

String[] titles = { "Date", "Condition", "Weight", "Pos", "Distance",
            "Margin", "Time", "200m", "PIR", "Jockey", "Track" };

for (int i = 0; i < titles.length; i++) {
     TableColumn column = new TableColumn(table, SWT.NONE);
     column.setText(titles[i]);
}

所以目前我正在做:

item.setText(0, meetingDate[i]);
item.setText(1, trackCondition[i]);
item.setText(2, weight[i]);
item.setText(3, position[i]);

我想做的是这样的事情:

item.setText(colMeetingdate, meetingDate[i]);
item.setText(colTrackCond, trackCondition[i]);
item.setText(colWeight, weight[i]);
item.setText(colPos, position[i]);

是否有标准方式来命名/引用列?

1 个答案:

答案 0 :(得分:3)

没有内置方法可以做到这一点。我能想到的最简单的解决方案是将列标题保留在List(让我们称之为tableHeaders)并根据需要插入/删除。

要获取索引,请执行以下操作:

int index = tableHeaders.indexOf("headerString");

if(index != -1)
    item.setText(index, blabla[i]);

此解决方案假定用户无法对表列重新排序。