Hallo,
nachdem ich nun schon ewig geooglet habe und es einfach nicht hinbekomme, versuche ich mein kniffliges problem mal hier zu schildern:
hier der Code(gibt natürlich Fehler)
Was ich haben möchte ist eigentlich sehr simple: Die Funktion soll einfach wenn Sie aufgerufen wird, ein neues modales Fenster öffnen, mit 2 Buttons und je nachdem ob man "OK" oder "Cancel" geklickt hat, soll die funktion true oder false zurückliefern.
Leider kreige ich das aber nur sehr unelegant hin da:
- es gibt nur "void" handleEvent(Event e), ich bräuchte aber "boolean" handleEvent(Event e) um den jeweiligen Rückgabewert von meiner Hauptfunktion getResult() zurückliefern zu lassen
- in handleEvent(Event e) kann ich nicht auf meine Funktionsvariable "result" zugreifen, es sei den ich mache sie "final" (dann kann ich sie aber nicht mehr verändern)
Es bleibt mir also im Moment nur eine globale Variable zu verwenden, was mir aber absolut zuwider ist, zumal ich viele davon brauchen werde.... kann mir irgendwer helfen? Bin mit meinem Latein am Ende. Oder steh ich einfach nur auf dem Schlauch???
nachdem ich nun schon ewig geooglet habe und es einfach nicht hinbekomme, versuche ich mein kniffliges problem mal hier zu schildern:
hier der Code(gibt natürlich Fehler)
Code:
public static boolean getResult()
{
boolean result = false;
final Shell dialog = new Shell (shell, SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);
final Button ok = new Button (dialog, SWT.PUSH);
ok.setText ("OK");
Button cancel = new Button (dialog, SWT.PUSH);
cancel.setText ("Cancel");
Listener listener = new Listener () {
// hier liegt das Problem.....
public void handleEvent (Event event) {
if(event.widget == ok)
result = true;
dialog.close ();
}
};
ok.addListener (SWT.Selection, listener);
cancel.addListener (SWT.Selection, listener);
dialog.open ();
while (!dialog.isDisposed ()) {
if (!display.readAndDispatch ()) display.sleep ();
}
return result;
}
Was ich haben möchte ist eigentlich sehr simple: Die Funktion soll einfach wenn Sie aufgerufen wird, ein neues modales Fenster öffnen, mit 2 Buttons und je nachdem ob man "OK" oder "Cancel" geklickt hat, soll die funktion true oder false zurückliefern.
Leider kreige ich das aber nur sehr unelegant hin da:
- es gibt nur "void" handleEvent(Event e), ich bräuchte aber "boolean" handleEvent(Event e) um den jeweiligen Rückgabewert von meiner Hauptfunktion getResult() zurückliefern zu lassen
- in handleEvent(Event e) kann ich nicht auf meine Funktionsvariable "result" zugreifen, es sei den ich mache sie "final" (dann kann ich sie aber nicht mehr verändern)
Es bleibt mir also im Moment nur eine globale Variable zu verwenden, was mir aber absolut zuwider ist, zumal ich viele davon brauchen werde.... kann mir irgendwer helfen? Bin mit meinem Latein am Ende. Oder steh ich einfach nur auf dem Schlauch???