display.readAndDispatch()
时间: 2024-05-18 21:11:53 浏览: 6
`display.readAndDispatch()` 是 SWT 应用程序中的一个重要方法,用于读取并处理事件队列中的事件。在 SWT 应用程序中,当用户与窗口中的控件进行交互时,会触发各种事件,例如鼠标单击、键盘按键等。这些事件会被加入到事件队列中,等待应用程序进行处理。
`display.readAndDispatch()` 方法的作用是从事件队列中读取一个事件,并调用相应的事件处理方法进行处理。如果队列中没有事件,则返回 false,否则返回 true。在应用程序的主线程中,通常使用一个循环不断地调用 `display.readAndDispatch()` 方法,以处理事件并响应用户的操作。
需要注意的是,如果事件处理方法执行的时间过长,会导致应用程序无法响应用户的操作,因此在处理事件时应该尽量保持简洁和高效。如果想要处理一些比较耗时的任务,可以考虑使用线程或者定时器等技术。
相关问题
Display display = Display.getDefault(); Shell shell = new Shell(); shell.setSize(450, 300); shell.setText("SWT Application"); shell.open(); shell.layout(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } }没有出现窗口
根据你给出的代码,这是一段使用 SWT 库创建 GUI 窗口的代码。根据代码来看,应该可以正常显示窗口的。如果没有出现窗口,可能是以下几个原因之一:
1. 代码没有被正确执行。请确保代码能够被正确编译和执行,或者尝试使用其他的 IDE 或工具来运行代码。
2. 显示器或操作系统问题。请确保你的显示器能够正常工作,并且操作系统没有出现任何问题。
3. 程序逻辑问题。请检查代码是否有逻辑错误或其他问题。你可以通过添加调试语句或使用调试工具来帮助你找出问题所在。
org.xml.sax.SAXParseException; systemId: file:/D:/app.uix; lineNumber: 1; columnNumber: 1; 文件提前结束。 at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203) at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:177) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327) at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1437) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:1019) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:327) at javax.xml.parsers.SAXParser.parse(SAXParser.java:328) at com.android.uiautomator.tree.UiHierarchyXmlLoader.parseXml(UiHierarchyXmlLoader.java:130) at com.android.uiautomator.UiAutomatorModel.<init>(UiAutomatorModel.java:51) at com.android.uiautomator.actions.OpenFilesAction.run(OpenFilesAction.java:55) at org.eclipse.jface.action.Action.runWithEvent(Action.java:498) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584) at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501) at org.eclipse.jface.action.ActionContributionItem$6.handleEvent(ActionContributionItem.java:452) at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source) at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source) at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source) at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source) at org.eclipse.jface.window.Window.runEventLoop(Window.java:825) at org.eclipse.jface.window.Window.open(Window.java:801) at com.android.uiautomator.UiAutomatorViewer.main(UiAutomatorViewer.java:78) null rootnode after parsing.
这个错误是由于解析XML文件时出现了问题导致的。具体来说,这个错误表示在解析名为 "D:/app.uix" 的文件时,出现了文件提前结束的情况。这可能是由于XML文件格式不正确或者文件内容存在问题所引起的。
要解决这个问题,你可以尝试以下几个步骤:
1. 检查XML文件的格式是否正确。确保所有的标签都有正确的开闭符号,并且没有缺失或多余的标签。
2. 检查XML文件的内容是否完整。确保没有任何部分被意外地删除或截断。
3. 如果可能的话,尝试使用其他工具或方法来解析XML文件,以确认问题是否与解析器本身有关。
如果以上步骤都没有解决问题,可能需要进一步检查代码和环境设置,以确定是否存在其他原因导致该错误。
希望这些信息对你有帮助!如果你有任何其他问题,请随时问我。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)