`
chengzhi_hong
  • 浏览: 167426 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

实现SWT中Table单元格的可编辑

    博客分类:
  • J2SE
 
阅读更多

public void editorTable(Table table,Event e){
  final TableEditor editor = new TableEditor(table);
  editor.horizontalAlignment = SWT.LEFT;
  editor.verticalAlignment=SWT.LEFT;
  editor.grabHorizontal = true;
  Rectangle clientArea = table.getClientArea();
        Point pt = new Point(e.x, e.y);
        int index = table.getTopIndex();
        while (index < table.getItemCount())
        {
         boolean visible = false;
         final TableItem item = table.getItem(index);
         for (int i = 0; i < table.getColumnCount(); i++)
         {
          Rectangle rect = item.getBounds(i);
          if (rect.contains(pt))
          {
           final int column = i;
           final Text text = new Text(table, SWT.NONE);
           Listener textListener = new Listener()
           {
            public void handleEvent(final Event e)
            {
             switch (e.type)
             {
              case SWT.FocusOut:
               item.setText(column, text.getText());
               text.dispose();
               break;
              case SWT.Traverse:
               switch (e.detail) {
                case SWT.TRAVERSE_RETURN:
                 item.setText(column, text.getText());
                case SWT.TRAVERSE_ESCAPE:
                 text.dispose();
                 e.doit = false;
               }
              break;
             }
            }
           };
           text.addListener(SWT.FocusOut, textListener);
           text.addListener(SWT.Traverse, textListener);
           editor.setEditor(text, item, i);
           text.setText(item.getText(i));
           text.selectAll();
           text.setFocus();
           return;
          }
          if (!visible && rect.intersects(clientArea)) {
           visible = true;
          }
         }
         if (!visible)
          return;
         index++;
        }
 }

分享到:
评论

相关推荐

    SWT Table单元格编辑功能

    ### SWT Table单元格编辑功能详解 在Java图形用户界面(GUI)开发中,SWT(Standard Widget Toolkit)是一个广泛使用的工具包,它提供了丰富的控件集合,用于构建高性能的桌面应用程序。其中,`Table`控件是SWT中最...

    可以编辑的table

    ### 可编辑的 SWT Table 实现详解 在 Eclipse SWT(Standard Widget Toolkit)中,`Table`...总之,通过以上步骤,我们可以实现在 SWT `Table` 中添加可编辑单元格的功能,这对于需要用户交互的数据展示场景非常有用。

    SWT疑难点解答,帮助新手朋友

    要使Table的单元格可编辑,需要为每个单元格设置编辑器,如文本框、复选框或单选按钮: ```java TableEditor editor = new TableEditor(table); Text textEditor = new Text(table, SWT.NONE); editor....

    Eclipse SWT 开发参考

    - **TableEditor组件**:用于编辑表格中的单元格。 #### 5. SWT的组件布局 SWT提供了多种布局管理器,如: - **FillLayout**:填充式布局,使组件填满其容器。 - **RowLayout**:行列式布局,按行或列排列组件。 ...

    CheckBoxCellEditor.zip_CheckboxCellEditor_SWT_cell

    `CheckBoxCellEditor`是SWT中的一个特殊组件,主要用于表格(TableViewer或TreeViewer)中实现单元格的复选框编辑功能。这个组件使得用户可以直接在表格中勾选或取消勾选某个条目,而无需打开单独的对话框进行编辑。...

    swt/jface tableViewer开发简化

    `tableViewer`封装了SWT中的`Table`控件,并添加了模型驱动的特性,使数据与视图分离,让代码更易于维护。 在描述中提到的博文链接(由于实际链接无法访问,这里仅做理论性解释),可能详细介绍了如何使用`...

    KTable for SWT 源代码+实例

    KTable是一个强大的、可定制的表格控件,专为SWT设计,提供了丰富的功能,如排序、过滤、编辑等。本文将深入探讨KTable的基本概念、源代码结构以及如何通过实例来理解和使用它。 1. **KTable概述** KTable是SWT中...

    SWT-resource address

    - 第三篇教程讲解了如何在Eclipse RCP应用程序中实现高级特性。 - 包括创建和管理视图、实现插件间通信等。 - 这些高级技巧对于构建复杂的应用程序非常重要。 通过以上资源和知识点的梳理,我们不仅可以深入了解...

    Eclipse_Swt_Jface_核心应用_部分19

    9.9.8 可编辑的表格(TableEditor) 187 9.9.9 用键盘控制表格(TableCursor) 189 9.9.10 带有进度条的表格 191 9.9.11 表格小结 192 9.10 树(Tree) 192 9.10.1 不同样式的树 193 9.10.2 为树添加...

    TableViewer示例

    总结,TableViewer是SWT中处理表格数据的强大工具,通过与ContentProvider、LabelProvider以及各种监听器配合,能够实现复杂的数据展示和交互功能。熟练掌握TableViewer的使用,将极大地提升Java桌面应用的用户体验...

    Tableviewer实现

    如果需要使表格单元格可编辑,可以实现`ITableEditorProvider`并添加到`TableViewer`。`CellEditor`类提供了多种类型的编辑器,如文本、组合框等。 6. **事件监听** 可以通过注册监听器来响应用户的操作,例如`...

    Setting focus cell in TableViewer

    描述中提到的链接指向了张江芳在iteye.com上的博客文章,尽管具体内容没有提供,但我们可以推测这篇文章可能讲解了如何在TableViewer中实现焦点单元格的设置和导航。在处理用户输入或自动流程时,能够正确设置和切换...

    TextTableEditor.zip_界面编程_Java_

    `TextTableEditor.zip`这个压缩包提供了一个关于如何使用Java实现界面编程的例子,特别是涉及到`SWT`(Standard Widget Toolkit)库来创建一个可编辑的表格,其中单元格内包含颜色选择器和下拉框。`SWT`是Eclipse...

    SqlBuild使用说明

    在这个画面中,用户可以双击任意单元格,修改表数据(修改完一个单元格后,再双击其他任意单元格,数据就可更新到数据库)。 七、技术实现 SqlBuild 使用纯 Java 代码书写,使用 SWT 技术使画面与 Windows 风格...

    Eclipse插件开发学习笔记(ch4-7)

    2. ** 表格编辑器(Table Editors)**:允许用户直接在表格中编辑单元格内容。 3. ** 多选框和复选列表(Checkbox and Checkbox List)**:用于提供多选选项的控件。 4. ** 表格分页(Table Paging)**:在大量数据...

    JFace-viewer

    通常,开发者会创建一个ContentProvider和LabelProvider,然后实例化Viewer并设置其数据提供者和标签提供者,最后将其添加到 SWT 控件(如Table或Tree)中。 综上所述,JFace Viewer是Eclipse RCP开发中强大且灵活...

Global site tag (gtag.js) - Google Analytics