【问题标题】:add selection listener to the rows of the jface tableviewer table without allowing multiple selection将选择侦听器添加到 jface tableviewer 表的行而不允许多选
【发布时间】:2011-12-05 19:16:41
【问题描述】:

我有一个 jface tableviewer,我需要在行上实现一个选择侦听器,在选择行时必须触发一个视图。 我已通过以下方式实现它:

viewer.getTable().addListener(SWT.Selection, new Listener() { 
 @Override public void handleEvent(Event e) 
 {  
  try {
       PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView("E2E_tab_view.view5");  
       }  
      catch (PartInitException e1) 
       {  
        e1.printStackTrace();  
        }  
      }});

但是我面临着多重选择的问题。我实际上不想允许对行进行多项选择,但现在我可以选择多个不需要的行。

那么任何人都可以帮助我实现这一点。我需要允许触发选择行或单击行视图的功能。

【问题讨论】:

  • 有什么理由你必须使用 SWT.EraseItem 而不是 SWT.Selected? SWT.Selected 中的事件应该能够为您提供已选择的项目,您可以取消选择事件块中的其他项目。
  • 我同意@Thomas 的观点,您应该改用SWT.Selected 事件。就多选而言,请参阅我的答案。

标签: java eclipse jface


【解决方案1】:

如果您的表格允许多选,那么您可能正在使用SWT.MULTI 样式位创建它,您应该改用SWT.SINGLE。后者是 Windows 的默认设置;尽管这在其他操作系统上可能有所不同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 2012-06-05
    • 2011-12-20
    • 1970-01-01
    相关资源
    最近更新 更多