table.addSelectionListener(new SelectionAdapter()
{
public void widgetSelected(SelectionEvent e)
{
if(table.getSelectionIndex() != -1)
{
System.out.println(table.getSelectionIndex());
TableItem item = table.getItem(table.getSelectionIndex());
System.out.println(item.toString());
}
else
{}
}
});
当我点击表格中的任何单元格时,只有该行的第一个单元格被选中并返回,而不是那个单元格
请告诉我如何从我选择的那个单元格中选择和获取项目
请看图片
我选择了第 3 列,但它返回了第一列的 TableItem
最佳答案
我之前遇到过同样的问题,我是这样解决的:
首先,您应该制作表格 SWT.FULL_SELECTION`;
然后,您必须通过读取鼠标位置来获取选定的单元格(因为基本swt 表不提供监听器来获取选定的单元格;选择一个项目是可能的)。这是代码:
table.addListener(SWT.MouseDown, new Listener(){
public void handleEvent(Event event){
Point pt = new Point(event.x, event.y);
TableItem item = table.getItem(pt);
if(item != null) {
for (int col = 0; col < table.getColumnCount(); col++) {
Rectangle rect = item.getBounds(col);
if (rect.contains(pt)) {
System.out.println("item clicked.");
System.out.println("column is " + col);
}
}
}
}
});
关于java - 如何从 SWT 表中选择一个单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11828053/