我目前有一个填充的SWT表,其中包含以下样式:
SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL
如果点击,使用SWT.FULL_SELECTION
来选择整行。
但使用table.getSelection()
仅返回第一列。
我没有任何tableviewer或其他设置。
我在哪里弄错了?
编辑: 例如:
if (table.getSelectionCount() > 0) {
for (TableItem item : table.getSelection()) {
System.out.println(item);
}
}
这只返回第一列
答案 0 :(得分:1)
由于您只是在整个System.out.println()
上调用TableItem
,因此Java会在内部使用TableItem#toString()
将其转换为String
。
但是,结果字符串不会包含TableItem
的所有数据。
相反,您需要迭代列以使用TableItem#getText(int column)
获取数据:
for(int i = 0; i < table.getColumnCount(); i++)
System.out.println(item.getText(i));