G
gf
Gast
Hi,
ich hab ne SWT App geschrieben, die ich schon merfach unter Win problemlos getestet habe. Hab die App nun an einem Bekannten weiteregegeben und bei ihm startet die Anwendung unter OSX nicht einmal.
Die Initialisierung des Displays sieht in etwa so aus (alles SWT-unrelevante habe ich entfernt):
[Java]public class Main {
public static void main(String[] args) {
Core.startUp();
}
}[/Java]
[Java]public class Core {
public static void startUp() {
MainWindow mainWindow;
try {
mainWindow = new MainWindow();
mainWindow.init();
} catch (Throwable t) {
showErrorDialog(t.getMessage());
t.printStackTrace();
return;
}
mainWindow.open();
}
}
[/code]
Der Stacktrace sieht so aus:
Ich habe in vorherigen Versionen, die GUI immer in einem separaten Thread erstellt...nach dem ich allerdings utner OSX die Meldung (Display must be created on main thread) gelesen habe, habe ich das geändert. Bringt aber leider nix.
Hat mir jemand nen Tipp?
ich hab ne SWT App geschrieben, die ich schon merfach unter Win problemlos getestet habe. Hab die App nun an einem Bekannten weiteregegeben und bei ihm startet die Anwendung unter OSX nicht einmal.
Die Initialisierung des Displays sieht in etwa so aus (alles SWT-unrelevante habe ich entfernt):
[Java]public class Main {
public static void main(String[] args) {
Core.startUp();
}
}[/Java]
[Java]public class Core {
public static void startUp() {
MainWindow mainWindow;
try {
mainWindow = new MainWindow();
mainWindow.init();
} catch (Throwable t) {
showErrorDialog(t.getMessage());
t.printStackTrace();
return;
}
mainWindow.open();
}
}
[/code]
Java:
public class MainWindow {
private Shell shell;
private Display display;
public MainWindow() {
display = new Display();
shell = new Shell(display, SWT.CLOSE | SWT.MIN);
shell.setImages(new Image[] {
new Image(display, getClass().getResourceAsStream("images/ico_s.png")),
new Image(display, getClass().getResourceAsStream("images/ico_l.png"))
});
}
}
Der Stacktrace sieht so aus:
Code:
***WARNING: Display must be created on main thread due to Cocoa restrictions.
org.eclipse.swt.SWTException: Invalid thread access
at org.eclipse.swt.SWT.error(Unknown Source)
at org.eclipse.swt.SWT.error(Unknown Source)
at org.eclipse.swt.SWT.error(Unknown Source)
at org.eclipse.swt.widgets.Display.error(Unknown Source)
at org.eclipse.swt.widgets.Display.createDisplay(Unknown Source)
at org.eclipse.swt.widgets.Display.create(Unknown Source)
at org.eclipse.swt.graphics.Device.<init>(Unknown Source)
at org.eclipse.swt.widgets.Display.<init>(Unknown Source)
at org.eclipse.swt.widgets.Display.<init>(Unknown Source)
at MainWindow.<init>(Unknown Source)
at Core.startUp(Unknown Source)
at Main.main(Unknown Source)
Ich habe in vorherigen Versionen, die GUI immer in einem separaten Thread erstellt...nach dem ich allerdings utner OSX die Meldung (Display must be created on main thread) gelesen habe, habe ich das geändert. Bringt aber leider nix.
Hat mir jemand nen Tipp?