到目前为止,我在Java中有一个简单的Java SWT应用程序,但奇怪的是当我在听到我自己的一个类触发的事件时尝试启动消息框/警告框时,我收到一条错误消息"无效的线程访问".
我的类事件被主类触发并听到,但它必须显示MessageBox时出现"无效线程访问"错误.我试图在一个函数中显示MessageBox,该函数包含将创建SWT GUI的所有其他代码.这是函数的样子:
public void createContents() {
Shell shell = new Shell();
//.....all the SWT GUI codes....
MessageBox msg = new MessageBox(shell, SWT.OK);
myClass.addEventListener(new MyClassEventClassListener() {
@Override
public void myClassEventHandler(MyClassEvent e) {
msg.setText("Hello");
msg.setMessage("Event fired!");
int result = msg.open();
}
});
}
Run Code Online (Sandbox Code Playgroud)
这些是课堂上的辅助功能.
<!-- language: lang-java -->
protected static Shell shell;
public static void main(String[] args) {
MyClass new myClass = new MyClass();
try {
SWTApp window = new SWTApp();
window.open();
} catch (Exception e) {
}
public void …Run Code Online (Sandbox Code Playgroud)