当前位置: 首页 > 面试题库 >

TableViewer中的字段之间的选项卡

楚宏胜
2023-03-14
问题内容

我想做的是能够在表格中的元素之间切换。

我目前正在这样创建我的表。

this.tableViewer = 
            new TableViewer(parent , SWT.FULL_SELECTION);

   tableViewer.setUseHashlookup(true);
        table = tableViewer.getTable();

        GridData gridData = new GridData(GridData.FILL_BOTH);
        gridData.grabExcessVerticalSpace = true;
        table.setLayoutData(gridData);

        table.setLinesVisible(true);
        table.setHeaderVisible(true);

        ...

   /** Create the Cell Editor Array - will hold all columns **/
        editors = new CellEditor[table.getColumnCount()];
        /** Cell Editor Row 1 **/


  /** Set the column properties **/
        tableViewer.setColumnProperties(columnNames);

        /** Assign the cell editors to the viewer **/
        tableViewer.setCellEditors(editors);

        /** Set the cell modifier for the viewer **/
        tableViewer.setCellModifier(new MyCellModifier(this));
        //Create the Table Viewer

        /** Table Viewer Content and Label Provider **/
        tableViewer.setContentProvider(new MyContentProvider(this));
        tableViewer.setLabelProvider(new MyLabelProvider());

但是我不确定如何设置表格。其他所有功能都可以编辑列,显示数据等。仅停留在最后一部分。

如果我错过了明显的文档或javadocs-我的道歉,甚至指出这些都很好。


问题答案:

我认为默认情况下,选项卡不会在swt表中从一个单元格跳转到另一个单元格。而是遍历到下一个控件。因此,当按下Tab键时,您还需要告诉它不要遍历

KeyListener keyListener = new KeyLisener()
{
    public void keyPressed(KeyEvent evt)
    {
        if (evt.keyCode == SWT.TAB)
        {
            // There are numerous setSelection methods.  I'll leave this to you. 
            tableViewer.getTable().setSelection(...)
        }
    }

    public void keyReleased(KeyEvent evt){}
}

TraverseListener traverseListener = new TraverseListener()
{
    public void keyTraversed(TraverseEvent evt)
    {
        if (evt.keyCode == SWT.TAB)
            evt.doit = false;
    }
}

tableViewer.getTable().addKeyListener(keyListener);
tableViewer.getTable().addTraverseListener(traverseListener);

同样,如derBiggi所建议,侦听器需要添加到Table对象,而不是TableViewer。



 类似资料:
  • 问题内容: 假设我有包含以下字段的文档: 我需要运行一些查询,其中某些条件将需要在两个或多个字段之间进行比较。喜欢 在标准SQL中,一个示例可能是: 我正在阅读一些文档,看起来“脚本”可能是实现此目的的唯一方法?还是还有其他选择? 问题答案: 您可以使用脚本过滤器- 您可以在此处和此处找到更多信息。

  • 我正在寻找一种方法,如何在浏览器中的多个选项卡或窗口之间进行通信(在同一个域上,而不是CORS上)而不留下痕迹。有几种解决办法: 使用窗口对象 邮件后传 Cookies 本地存储 第一种可能是最糟糕的解决方案--你需要从你当前的窗口打开一个窗口,然后你只能在保持窗口打开的情况下进行交流。如果您在任何窗口中重新加载该页,则很可能会丢失通信。 第二种方法,使用postMessage,可能可以实现跨源通

  • 最后,本文介绍了新的Java 8<code>Optional<code>,指出: Optional远不如Scala中的Option[T]强大(但至少它不允许包装null)。该API不像空处理那样简单,而且可能要慢得多。但是编译时检查的好处加上可读性和可选使用的文档价值大大超过了缺点 我对Scala有着非常基本的了解,而且我对Java 8<code>Optional<code>也越来越熟悉,所以乍一

  • 问题内容: 在表中给定DateTime字段的情况下,如何选择一个日期与另一个日期之间的记录。 问题答案:

  • 我已经搜索了很多关于如何使用SlidengTablayout在片段之间进行通信的内容,但还没有找到一个好的答案。我知道使用ActionBar,但我想要的是androidLollipop使用SlidingTabLayout的新方式。我试过了-

  • 问题内容: 我阅读了Sun文档以及有关Stack Overflow的大量文章,但是对于Java编译器选项和的区别,我仍然感到困惑。 假设我具有以下目录结构: 还要说我在package中有一个源文件,并且该目录结构在source文件夹中是可以的。 我在 project1 目录中并运行: 要么 和我得到相同的结果。在详细模式下,两种情况下都将搜索源文件。 如果有人可以帮助我弄清楚这些选项的细节,那将是