TableViewerEditor.create(viewer, new DoubleClickColumnViewerEditorActivationStrategy(viewer), ColumnViewerEditor.DEFAULT);
class DoubleClickColumnViewerEditorActivationStrategy extends ColumnViewerEditorActivationStrategy {
public DoubleClickColumnViewerEditorActivationStrategy(ColumnViewer viewer) {
super(viewer);
}
/**
* 設置編輯器觸發方式
*/
@Override
protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
boolean singleSelect = ((IStructuredSelection) getViewer().getSelection()).size() == 1;
return singleSelect
&& (event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
|| event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC || event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL);
}
}
覆盖isEditorActivationEvent方法,加上event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION条件。
tableViewerColumn_1.setEditingSupport(new EditingSupport(
tableViewerColumn_1.getViewer()) {
@Override
protected CellEditor getCellEditor(Object element) {
// TODO Auto-generated method stub
if (element instanceof Department) {
Department dep = (Department) element;
TextCellEditor textCell = new TextCellEditor(table);
textCell.setValue(dep.getDmanager());
return textCell;
}
return null;
}
@Override
protected boolean canEdit(Object element) {
// TODO Auto-generated method stub
if (element instanceof Department) {
return true;
}
return false;
}
@Override
protected Object getValue(Object element) {
// TODO Auto-generated method stub
if (element instanceof Department) {
Department dep = (Department) element;
return dep.getDmanager();
}
return null;
}
@Override
protected void setValue(Object element, Object value) {
// TODO Auto-generated method stub
if (element instanceof Department) {
Department dep = (Department) element;
dep.setDmanager(value.toString());
getViewer().refresh();
}
}
});
总结
关键代码就这两行
1:向viewer绑定一种启动编辑的入口(如:是双击、单机、键盘都可以在这个类中区定义)DoubleClickColumnViewerEditorActivationStrategy
TableViewerEditor.create(viewer, new DoubleClickColumnViewerEditorActivationStrategy(viewer), ColumnViewerEditor.DEFAULT);
这行代码是为 哪列 设置为可编辑的,并设置一个EditingSupport
tableViewerColumn_1.setEditingSupport(new EditingSupport(
http://hi.baidu.com/crazynull/blog/category/%C4%AC%C8%CF%B7%D6%C0%E0
分享到:
相关推荐
在本文中,我们将深入探讨如何使用Swt/Jface库中的`tableViewer`组件来创建一个基本的表格视图。Swt(Standard Widget Toolkit)是Java中用于开发原生界面的应用程序开发工具包,而Jface是建立在Swt之上的抽象层,...
在本文中,我们将深入探讨如何使用Swt/Jface库中的`TableViewer`组件来创建一个功能丰富的表格,并实现用户可以直接在表格上编辑数据的功能。Swt/Jface是Eclipse平台的一部分,提供了一套用于构建图形用户界面(GUI...
在IT行业中, SWT (Standard Widget Toolkit) 和 JFace 是用于构建 Java GUI 应用程序的两个重要库。它们是Eclipse开源项目的一部分,为开发者提供了丰富的用户界面组件和高级抽象,使得开发桌面应用程序变得更加...
### SWT Table单元格编辑功能详解 在Java图形用户界面(GUI)开发中,SWT...通过以上步骤,我们可以在SWT `Table`控件中实现单元格的编辑功能,使用户能够直接在界面上修改数据,提高了应用的交互性和实用性。
总结来说,SWT中的TableViewer是一个强大而灵活的数据展示工具,通过自定义适配器和设置列属性,我们可以方便地展示项目中的错误信息,提高问题诊断和修复的效率。对于源码和工具爱好者,学习和掌握TableViewer的...
- 使用TableViewer和TreeViewer实现数据展示和编辑。 - 创建自定义对话框,如使用Dialog和Shell类。 - 事件驱动编程,实现用户交互响应。 - 使用Action和Command模式进行命令管理,提高代码复用性。 - 实现文件...
总结,TableViewer是SWT中处理表格数据的强大工具,通过与ContentProvider、LabelProvider以及各种监听器配合,能够实现复杂的数据展示和交互功能。熟练掌握TableViewer的使用,将极大地提升Java桌面应用的用户体验...
在标题“tableviewer edit”中提到的编辑功能,是指`TableViewer`支持对表格中的单元格进行编辑。 `CellEditor` 是`TableViewer`编辑功能的核心,允许用户在表格的特定单元格内输入或修改数据。`CellEditor` 提供了...
"Set TableViewer Cell Focus"这个话题是关于如何在TableViewer中设置焦点到特定单元格上,这对于实现用户交互和数据编辑功能至关重要。在Eclipse插件开发或者基于SWT(Standard Widget Toolkit)的应用程序中,...
JFace的一些关键组件包括Viewer(用于封装SWT控件,如TableViewer和TreeViewer)、SelectionService(处理控件选择事件)以及Dialogs(提供标准对话框,如消息对话框和输入对话框)。 6. SWT与JFace的协同工作 在...
3. 表格和树视图:如何使用TableViewer和TreeViewer来展示和操作结构化数据。 4. 模型-视图-控制器(MVC):解释MVC模式如何帮助保持代码的清晰性和可扩展性。 5. 对话框(Dialogs):介绍如何使用JFace提供的标准...
用TextCellEditor和ComboBoxCellEditor给表格添加编辑功能。 通过表格的addListener事件为表格的单元格添加编辑功能,事例根据鼠标点击时鼠标的X和Y轴的坐标判断 单元格显示为TextCellEditor或ComboBoxCellEditor...
在 JFace 中,TableViewer 和 TreeViewer 扩展了这些功能,添加了数据绑定和自定义列渲染等功能。 8. **Layout Managers**:SWT 提供了多种布局管理器,如 FillLayout、GridLayout、FormLayout 等,用于控制组件在...
JFace的TableViewer和TreeViewer提供了一种更抽象的方式来操作这些组件,包括数据绑定和排序。 7. **JFace服务**:包括Dialog、WorkbenchWindow、Action、SelectionService等,它们简化了窗口、动作和选择事件的...
4. **表视图和树视图**:说明如何使用TableViewer和TreeViewer来显示和管理数据,以及如何实现分页、排序和过滤功能。 5. **JFace的数据绑定**:介绍JFace的DataBinding机制,如何将UI组件与业务模型对象关联,实现...
4. **表和树的数据视图**:JFace的TableViewer和TreeViewer提供了对表格和树形结构数据的高级支持,包括排序、过滤和分页等功能。 5. **视图和编辑器**:在Eclipse IDE中,JFace用于创建可复用的视图和编辑器组件,...
JFace的控件通常比SWT的控件更具有面向对象的特性,例如它有TreeViewer和TableViewer,用于显示和操作树形和表格数据。此外,JFace还包括模型-视图-控制器(MVC)的设计模式,帮助开发者更好地组织代码结构。 在提供...
`CheckBoxCellEditor`是SWT中的一个特殊组件,主要用于表格(TableViewer或TreeViewer)中实现单元格的复选框编辑功能。这个组件使得用户可以直接在表格中勾选或取消勾选某个条目,而无需打开单独的对话框进行编辑。...
5. **表和树**:学习如何使用TableViewer和TreeViewer来显示和操作数据集合,以及如何自定义列和行的显示。 6. **表单构建**:了解FormToolkit和FormPage,用以构建复杂的表单结构,包括字段验证和错误提示。 7. *...
5. `org.eclipse.jface.viewers`:用于创建和管理数据驱动视图的类,如TableViewer和TreeViewer。 6. `org.eclipse.jface.databinding`:数据绑定相关的API,使UI与模型数据保持同步。 7. `org.eclipse.jface....