Also ich hab ein wenig mit Java rumgespielt und benutze für die GUI SWT. Jetzt hab ich mit SWT noch nie was gemacht, aber bis auf ein paar Kleinigkeiten funktioniert schon alles. Jetzt möchte ich aber irgendwo in meinem Programm eine MessageBox anzeigen, und das will nicht recht geraten.
Für eine Messagebox braucht man ja eine Shell, die man mithilfe eines Displays erstellen kann. Das Display existiert einmal für die ganze Applikation, das ist nicht das Problem. Aber ich habe mehrere Fenster die mal offen und mal zu sein können, und der Teil mit der MessageBox kann von mehreren Stellen aus aufgerufen werden, also hab ich keine Shell, die ich übergeben kann. Dann hab ich folgendes versucht:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
|
Shell shell = new Shell(display);
MessageBox mb=new MessageBox(shell);
mb.setText("Fehler!");
mb.setMessage(Text);
mb.open();
shell.dispose();
|
Das funktioniert auch, aber nur einmal. Wenn ich danach noch eine MessageBox anzeigen will, kommt diese zwar, aber im Hintergrund und es kommt kein Benachrichtigungston. Wie würde ich das Problem mit SWT jetzt sauber gelöst bekommen (es ist ja auch schon irgendwie sehr hässlich, eine temporäre shell zu erstellen).