在eclipse插件中,我试图创建一个弹出窗口,该窗口激活编辑器并根据弹出窗口中选择的选项向字符串添加语法。我有一个扩展AbstractTextEditor的编辑器类,在其中我尝试使用键侦听器弹出一个包含字符串操作函数列表的窗口,然后当列表中的一个项被选中时,我想用弹出窗口中的方法返回的新字符串替换一些选定的内容。当我尝试这样做时(在两个链接的文件中使用代码),我会收到以下错误:
线程“AWT 0”中的异常:在org.eclipse.swt.widgets.Widget.error(Widget.java:451) at org.eclipse.swt.widgets.Widget.checkWidget的org.eclipse.swt.SWT.error(SWT.java:4595) at org.eclipse.swt.SWT.error(SWT.java:4510) at org.eclipse.swt.SWT.error(SWT.java:4481)的无效线程访问(( org.eclipse.swt.custom.StyledText.getSelectionRange(StyledText.java:4743) at githubflavoredmarkdowneclipseplugin.MarkdownEditor.test(MarkdownEditor.java:140) at autocomplete.AutoComplete$1.keyPressed(AutoComplete.java:50) at java.awt.AWTEventMulticaster.keyPressed(Unknown Source) java.awt.Component.processKeyEvent(未知来源)在java.awt.Component.processEvent(不明来源)在java.awt.KeyboardFocusManager.redispatchEvent(Unknown的java.awt.Container.processEvent(未知的来源)在java.awt.Component.dispatchEventImpl(未知的来源)在java.awt.Container.dispatchEventImpl(未知的来源)在java.awt.Component.dispatchEvent(未知的来源)在java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown的源头(在java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown的源头)在java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown的( java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown来源)在java.awt.Component.dispatchEventImpl(未知来源)在java.awt.Container.dispatchEventImpl(未知来源)在java.awt.Window.dispatchEventImpl(未知来源)在java.awt.Component.dispatchEvent(未知来源)在java.awt.EventQueue.dispatchEventImpl(未知来源)在java.awt.EventQueue.access$500(未知来源)在java.awt.EventQueue$3.运行(未知源)在java.awt.EventQueue$3.运行(未知源)在java.security.AccessController.doPrivileged(Native方法(在java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown来源)在java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown源)在java.awt.EventQueue$4.运行(未知源)在java.awt.EventQueue$4.运行(未知源)在java.security.AccessController.doPrivileged(Native方法)在java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege )(未知源)在java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown源的java.awt.EventQueue.dispatchEvent(未知源)在java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown源(在java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown源)在java.awt.EventDispatchThread.pumpEvents(Unknown源(在java.awt.EventDispatchThread.pumpEvents(Unknown源)在java.awt.EventDispatchThread.run(未知源)
当autoupdate类试图通知编辑器类已经选择了更改时,它似乎无法操作styledText变量。有人知道怎么解决这个问题吗?
包含此代码的两个文件可以在以下链接中查看:http://www.filedropper.com/markdowneditor http://www.filedropper.com/autocomplete
发布于 2018-11-07 22:16:22
获得该异常的原因是,当您进行与SWT相关的UI更改时,您必须执行可运行的vis (Display.syncExec,myRunable),否则将出现该异常。
https://stackoverflow.com/questions/53183639
复制相似问题