`
hustlong
  • 浏览: 124652 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

SWT的Table对单元格添加可编辑属性

阅读更多
首先是初始化Display , shell ,然后建立table,初始化table:
主要代码贴在下面了:
display = new Display();
font1=new Font(display,"宋体",10,SWT.BOLD);
font2=new Font(display,"宋体",12, SWT.ITALIC);
font3=new Font(display,"宋体",12,SWT.BOLD );
shell = new Shell(display);
shell.setBounds(0, 0, 950, 600);
shell.setText("电信系学生信息管理系统(Designed By Ikeel)");
shell.setImage(new Image(null, "image/book.jpg"));
shell.setBackgroundImage(new Image(null, "image/13.jpg"));
        shell.setBackgroundMode(SWT.MOD1);



初始化Table:

table = new Table(group, SWT.V_SCROLL | SWT.H_SCROLL | SWT.SINGLE
| SWT.FULL_SELECTION | SWT.CHECK);
table.setHeaderVisible(true);
table.setLinesVisible(true);
table.setBounds(15,45,695, 290);
table.setItemCount(Itemcount);
table.setBackground(display.getSystemColor(SWT.COLOR_WHITE));
        table.setFont(Display.getCurrent().getSystemFont());
        TableColumn[]  columns=new TableColumn[headers.length];
for (int i = 0; i < headers.length; i++) {
    columns[i] = new TableColumn(table, SWT.CENTER);
columns[i].setText(headers[i]);
columns[i].setResizable(Boolean.TRUE);
columns[i].setWidth(Width[i]);
}



Table的初始化基本就这些了,然后是推每个TableItem增加Listener,当有Selection事件时,根据行和列可以定位到每一个Cell,然后就可以处理事件,为一个Cell添加可编辑的方法是增加一个TableEditor:代码如下:

table.addListener(SWT.MouseDoubleClick, new Listener()

{
public void handleEvent(Event event) {
Point point = new Point(event.x, event.y);
final TableItem item = table.getItem(point);

if (item == null)
return;
for (int i = 0; i < columnsize; i++) {
Rectangle rectang = item.getBounds(i);
if (rectang.contains(point)) {
EDITABLECOLUMN = i;
final TableEditor editor = new TableEditor(
table);
Control oldEditor = editor.getEditor();
if (oldEditor != null)
oldEditor.dispose();
//添加Editor
final Text texteditor = new Text(table,
SWT.NONE);
texteditor.computeSize(SWT.DEFAULT, table
.getItemHeight());
editor.grabHorizontal = true;
editor.minimumHeight = texteditor.getSize().y;
editor.minimumWidth = texteditor.getSize().x;
editor.setEditor(texteditor, item,
EDITABLECOLUMN);
texteditor.setFont(new Font(display,"宋体",12, SWT.ITALIC));

texteditor.setText(item
.getText(EDITABLECOLUMN));
texteditor.forceFocus();
texteditor
.addModifyListener(new ModifyListener() {

//开始编辑的事件 public void modifyText(
ModifyEvent event) {
Text text = (Text) editor
.getEditor();
text.setForeground(display.getSystemColor(SWT.COLOR_RED));
editor.getItem().setText(
EDITABLECOLUMN,
text.getText());
}
});
                               
texteditor
.addFocusListener(new org.eclipse.swt.events.FocusAdapter() {
public void focusLost(
org.eclipse.swt.events.FocusEvent e) {

///这里写的是当编辑后失去焦点后做的处理
}



}  


这个编辑器贴代码不是很方便啊,就不再贴了,不过添加表格单元格编辑的基本的方法的代码已经在上面了。

分享到:
评论

相关推荐

    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

    // 允许所有行都可编辑 } }); ``` 3. **事件处理**:`CheckBoxCellEditor`在被点击时会自动处理选择状态的改变,但如果你需要在选中状态改变时执行其他操作,可以添加监听器。例如,添加`SelectionListener`来...

    swt/jface tableViewer开发简化

    6. **定制化功能**: `tableViewer`支持自定义列宽、单元格样式,甚至自定义单元格编辑器,提供高度可定制化的用户体验。 关于压缩包文件`tableReflectPro`,名字暗示可能是一个关于反射(Reflection)的工具或示例...

    KTable for SWT 源代码+实例

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

    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 为树添加...

    SWT-resource address

    SWT的目标是提供一个高效、可移植且功能丰富的图形界面,同时保持对底层操作系统的高度兼容性和性能优势。 #### SWT知识点概述 1. **理解布局(Understanding Layouts)** - **资源地址**:...

    TableViewer示例

    TableColumn column = viewer.getTable().addColumn(new TableColumn(table, SWT.LEFT)); column.setText("Name"); column.setWidth(100); viewer.setColumnProperties(new String[]{"Name", "Age", "Email"}); ``` ...

    TextTableEditor.zip_界面编程_Java_

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

    Tableviewer实现

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

    Setting focus cell in TableViewer

    5. "[Eclipse_Project] View of -org_eclipse_swt_snippets-src-org-eclipse-swt-snippets-Snippet96_java.mht" 可能是Eclipse SWT Snippets项目的一部分,其中Snippet96可能是一个关于TableViewer的例子。...

    JFace-viewer

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

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

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

    SqlBuild使用说明

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

Global site tag (gtag.js) - Google Analytics