我有一张SWT表。单击时,我不想选择整行,而是选择某些单元格。这可能吗?
我目前的代码是:
tableViewer = new TableViewer(parent, SWT.NONE);
Table table = tableViewer.getTable();
this.tableViewer.getTable().setLayoutData(
new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
TableLayout layout = new TableLayout();
layout.addColumnData(new ColumnWeightData(20, 20, true));
layout.addColumnData(new ColumnWeightData(20, 20, true));
this.tableViewer.getTable().setLayout(layout);
table.setHeaderVisible(true);
table.setLinesVisible(true);
tableViewer.setContentProvider(new ArrayContentProvider());
tableViewer.setLabelProvider(new ITableLabelProvider() {
...
答案 0 :(得分:1)
默认实现是只选择单元格而不是行。在您的情况下,正在选择整行,因为您已选择fullSelection
为true。
用这个替换你的代码,它应该可以工作。
this.tableViewer.getTable().setLayoutData(
new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
答案 1 :(得分:1)
如果您想获取单元格的文本,可以使用getCell()
this.tableViewer.getTable().addMouseListener(new MouseAdapter() {
public void mouseDown(MouseEvent e) {
ViewerCell viewerCell = this.tableViewer.getCell(new Point(e.x,e.y));
String cellText = viewerCell.getText();
System.out.println("Cell clicked: " + cellText);
}
});
答案 2 :(得分:0)
转到JFace Snippets,然后搜索“小区”。有几个有用的片段可供选择......