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()
用于建立行对象之间的连接, 编辑器(convert value)指示该值是否为 可编辑,…)setCellModifier()
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;
}