Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当我们双击CheckboxTreeViewer选定项时,如何获取键盘光标焦点以编辑标签文本_Java_Jface_Treeviewer - Fatal编程技术网

Java 当我们双击CheckboxTreeViewer选定项时,如何获取键盘光标焦点以编辑标签文本

Java 当我们双击CheckboxTreeViewer选定项时,如何获取键盘光标焦点以编辑标签文本,java,jface,treeviewer,Java,Jface,Treeviewer,如何编辑标签文本 在本项目示例中,标签文本为CheckBOxTreeViewer、AA、BBB等 当我们双击CheckboxTreeViewer项时,如何获取键盘光标焦点以编辑标签文本。 版本与AWT/Swing不同 您需要在treeViewer上使用: setColumnProperties(),它为要编辑的列命名。默认情况下,树只有一列,因此您可以使用仅包含一个元素的数组) setCellEditor()指示如何编辑值(文本、, 组合,…) setCellModifier()用于建立行对象

如何编辑标签文本

在本项目示例中,标签文本为
CheckBOxTreeViewer
、AA、BBB等

当我们双击
CheckboxTreeViewer
项时,如何获取键盘光标焦点以编辑标签文本。
版本与AWT/Swing不同

您需要在treeViewer上使用:

  • setColumnProperties()
    ,它为要编辑的列命名。默认情况下,树只有一列,因此您可以使用仅包含一个元素的数组)
  • setCellEditor()
    指示如何编辑值(文本、, 组合,…)
  • setCellModifier()
    用于建立行对象之间的连接, 编辑器(convert value)指示该值是否为 可编辑,…)
如果您希望双击该版本:

public class MyLabelProvider extends LabelProvider {

    @Override
    public Image getImage(Object element) {
        return createImage(imagePath);
    }

    @Override
    public String getText(Object element) {
        return MessageFormat.format((String)element); // CheckBOxTreeViewer, AA, BBB //and etc.
    }

    @Override
    public void dispose() {

    }

}


public class MyContentProvider implements ITreeContentProvider, IViewerListener {

    private CheckboxTreeViewer viewer;
  @Override
    public void inputChanged(Viewer viewer, Object oldInput, Object NewInput) {

    }

    @Override
    public Object[] getElements(Object inputElement) {
    }

    @Override
    public Object[] getChildren(Object parentElement) {
    }
    @Override
    public Object getParent(Object element) {
    }
    @Override
    public boolean hasChildren(Object element) {
    }
    @Override
    public void refreshOnlyContent(Object element) {
    }
    @Override
    public void refreshOnlyLabels() {
    }
    @Override
    public void refreshEverything(Object element) {
    }

    @Override
    public void dispose() {
    }
}


public class MyClass {

@PostConstruct
    public void postConstruct(Composite composite) {

CheckboxTreeViewer   treeViewer = new CheckboxTreeViewer(Composite);

MyContentProvider contentProvider = new MyContentProvider ();

treeViewer.setContentProvider(contentProvider);

IViewerListener  viewerListener = contentProvider;

treeViewer.setLabelProvider(new MyLabelProvider ());

treeViewer.addDoubleClickListener(new IDoubleClickListener() {

 @Override
public void doubleClick(DoubleClickEvent event) {

      //editor cursor focus code
  }
});

}
}

您也可以查看这篇非常有趣的文章:

您需要使用
EditingSupport
阅读类似的内容(编辑支持适用于树和表)
TreeViewerEditor.create(treeViewer, new ColumnViewerEditorActivationStrategy(treeViewer){
    protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {  
        return event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION;
    }