eclipse - 在 Eclipse 中创建 CellEditor 时出现 AssertionFailedException

标签 eclipse swt jface eclipse-emf

希望有人能指出我正确的方向。我正在尝试在 Eclipse 中创建一个 CellEditor,当我单击该字段时,我收到一个未处理的事件循环异常,并带有下面的堆栈跟踪。

此列的单元格编辑器代码如下所示

/** Cell Editor Row 2 **/
textEditor = new TextCellEditor(table);
((Text)textEditor.getControl()).setTextLimit(10);
editors[1] = textEditor;

org.eclipse.core.runtime.AssertionFailedException: assertion failed:
at org.eclipse.core.runtime.Assert.isTrue(Assert.java:111)
at org.eclipse.core.runtime.Assert.isTrue(Assert.java:97)
at org.eclipse.jface.viewers.TextCellEditor.doSetValue(TextCellEditor.java:228)
at org.eclipse.jface.viewers.CellEditor.setValue(CellEditor.java:855)
at org.eclipse.jface.viewers.EditingSupport.initializeCellEditorValue(EditingSupport.java:96)
at org.eclipse.jface.viewers.ColumnViewerEditor.activateCellEditor(ColumnViewerEditor.java:194)
at org.eclipse.jface.viewers.ColumnViewerEditor.handleEditorActivationEvent(ColumnViewerEditor.java:443)
at org.eclipse.jface.viewers.ColumnViewer.triggerEditorActivationEvent(ColumnViewer.java:680)
at org.eclipse.jface.viewers.ColumnViewer.handleMouseDown(ColumnViewer.java:664)
at org.eclipse.jface.viewers.ColumnViewer.access$0(ColumnViewer.java:660)
at org.eclipse.jface.viewers.ColumnViewer$1.mouseDown(ColumnViewer.java:89)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:179)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3823)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3422)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2382)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2198)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:488)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at com.tasc.swb.internal.application.SWBApplication.start(SWBApplication.java:414)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:382)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
at org.eclipse.equinox.launcher.Main.main(Main.java:1212)

最佳答案

根据this thread :

it seems like:

  • you have either not set the CellModifier for the TableViewer (using the setCellModifier() function)
  • or, if you have, then the getValue() function of your ICellModifier descendant returns either null or not a String object.
    The return value of getValue() is an object, but if you are using a TextCellEditor, it has to return a String.

关于eclipse - 在 Eclipse 中创建 CellEditor 时出现 AssertionFailedException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1390613/

相关文章:

java - Eclipse 中是否已经安装了 WindowBuilder Pro?

java - 使用实例变量 java 的多线程

java - 尝试删除拖放监听器时获取 "SWTException: Widget is disposed"

java - JFace 向导在最后一页显示数据

java - 一个项目 - 多个程序

java - 在没有反应堆的情况下按顺序清理/安装多个maven项目

java - GUI 框架和按钮

java - 抓取 SWT 组件的继承背景图像(滚动复合)

java - 如何在 JFace TreeViewer 中显示根元素?

java - 如何从 TitleAreaDialog 引用 SWT View