swt tableViewer双击选择单元格事件


import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;

public class Test {

 public static void main(String[] args) {

  Display display = new Display();
  final Shell shell = new Shell(display);
  shell.setSize(450, 300);
  shell.setText("Test");
 
  final Label label = new Label(shell, SWT.NONE);
  label.setBounds(50, 178, 311, 60);

  TableViewer tableViewer = new TableViewer(shell, SWT.BORDER
    | SWT.FULL_SELECTION);
  final Table table = tableViewer.getTable();
  table.setHeaderVisible(true);
  table.addMouseListener(new MouseAdapter() {
   @Override
   public void mouseDoubleClick(MouseEvent e) {
    int rowIndex = table.getSelectionIndex();
    int columnIndex = -1;
    int left = 0;
    for (int i = 0; i < table.getColumns().length; i++) {
     left += table.getColumns()[i].getWidth();
     if (e.x < left) {
      columnIndex = i;
      break;
     }
    }
    if(columnIndex != -1) {
     String text = table.getItem(rowIndex).getText(columnIndex);
     label.setText("double click on: "+ text);
     Shell shell = new Shell();
     MessageDialog.openInformation(shell, "信息", "双击单元格:"+text);
    }
   }
  });
  table.setBounds(34, 25, 350, 118);

  TableColumn tableColumn = new TableColumn(table, SWT.NONE);
  tableColumn.setWidth(100);
  tableColumn.setText("Column One");

  tableColumn = new TableColumn(table, SWT.NONE);
  tableColumn.setWidth(100);
  tableColumn.setText("Column Two");

  tableColumn = new TableColumn(table, SWT.NONE);
  tableColumn.setWidth(100);
  tableColumn.setText("Column Three");

  TableItem tableItem = new TableItem(table, SWT.NONE);
  tableItem.setText(new String[] { "1.1", "1.2", "1.3" });

  tableItem = new TableItem(table, SWT.NONE);
  tableItem.setText(new String[] { "2.1", "2.2", "2.3" });

  shell.open();
  while (!shell.isDisposed()) {
   if (!display.readAndDispatch())
    display.sleep();
  }
  display.dispose();
 }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值