deinertsche
Erfahrenes Mitglied
Hallo!
In einem SWT Programm benötige ich während des Programmflusses eine Passworteingabe vom User, die ich durch ein Pop-Up realisieren möchte.
Der normale Programmthread muss währenddessen warten, daher empfiehlt sich display.syncexec. Aber wie genau funktioniert das mit dem Rückgabewert?
Ich hatte es mir ungefähr so gedacht. Der Hauptthread ruft eine Methode namens askForPassword() aus der GUI Klasse auf und bekommt als return value das Passwort von der Methode zurückgeliefert. In der Methode askForPassword wird ein Eingabedialog erzeugt und wenn der User auf OK klickt wird der eingegebene Wert zurückgeliefert.
String password = gui.getDisplay().syncExec(
new Runnable() {
public void run() {
return askForPassword();
}
});
Das Problem wird sofort deutlich: run ist eine void Methode und kann daher keinen Wert zurückgeben. Aber wie kann man mit syncexec einen Wert zurückgeben?
In einem SWT Programm benötige ich während des Programmflusses eine Passworteingabe vom User, die ich durch ein Pop-Up realisieren möchte.
Der normale Programmthread muss währenddessen warten, daher empfiehlt sich display.syncexec. Aber wie genau funktioniert das mit dem Rückgabewert?
Ich hatte es mir ungefähr so gedacht. Der Hauptthread ruft eine Methode namens askForPassword() aus der GUI Klasse auf und bekommt als return value das Passwort von der Methode zurückgeliefert. In der Methode askForPassword wird ein Eingabedialog erzeugt und wenn der User auf OK klickt wird der eingegebene Wert zurückgeliefert.
String password = gui.getDisplay().syncExec(
new Runnable() {
public void run() {
return askForPassword();
}
});
Das Problem wird sofort deutlich: run ist eine void Methode und kann daher keinen Wert zurückgeben. Aber wie kann man mit syncexec einen Wert zurückgeben?