Note that there are some explanatory texts on larger screens.

plurals
  1. POInvalid Thread Access Error with Java SWT
    text
    copied!<p>I have a simple Java SWT app in Java so far but the weird thing is when I try to launch a messagebox/alert box upon listening to an event fired by one of my own classes, I get an error saying "Invalid thread access". </p> <p>My class event is fired and heard by the main class but it is when it has to show the MessageBox that the "Invalid thread access" error appear. I am trying to show the MessageBox in a function that consist of all the other codes that will create the SWT GUIs. This is how the function looks like: </p> <pre><code>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(); } }); } </code></pre> <p>These are the auxiliary functions together in the class.</p> <pre><code>&lt;!-- language: lang-java --&gt; 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 open() { Display display = Display.getDefault(); createContents(); shell.open(); shell.layout(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } } </code></pre> <p>The error stack trace is as follows:</p> <pre><code>Exception in thread "AWT-EventQueue-0" org.eclipse.swt.SWTException: Invalid thread access at org.eclipse.swt.SWT.error(SWT.java:4083) at org.eclipse.swt.SWT.error(SWT.java:3998) at org.eclipse.swt.SWT.error(SWT.java:3969) at org.eclipse.swt.widgets.Display.error(Display.java:1249) at org.eclipse.swt.widgets.Display.checkDevice(Display.java:755) at org.eclipse.swt.widgets.Display.getShells(Display.java:2171) at org.eclipse.swt.widgets.Display.setModalDialog(Display.java:4463) at org.eclipse.swt.widgets.MessageBox.open(MessageBox.java:200) </code></pre> <p>Any help will be great. Thanks!</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload