SWT: eingabe prüfen, setFocus
Hi,
ich habe eine Oberfläche mit SWT Elementen. Nun möchte ich in einem Textfeld die Eingabe prüfen. Dazu schreibe ich die Prüfung in die LostFocus Methode des Textfeldes. Wenn die Eingabe nicht korrekt erfolgt ist, möchte ich dass der Focus wieder auf dieses Textfeld gesetzt wird.
Mein Code sieht so aus:
Leider wird der Focus nicht auf das Textfeld zurückgesetzt sondern auf das nächste Feld.
Weiss jemand wie ich das lösen kann?
Vielen Dank
fanfan
Hi,
ich habe eine Oberfläche mit SWT Elementen. Nun möchte ich in einem Textfeld die Eingabe prüfen. Dazu schreibe ich die Prüfung in die LostFocus Methode des Textfeldes. Wenn die Eingabe nicht korrekt erfolgt ist, möchte ich dass der Focus wieder auf dieses Textfeld gesetzt wird.
Mein Code sieht so aus:
Code:
dbname = new Text(this, SWT.BORDER);
dbname.setFont(SWTResourceManager.getFont("", 8, SWT.NONE));
dbname.addFocusListener(new FocusAdapter() {
public void focusLost(FocusEvent e) {
String text = dbname.getText();
if(text!=""){
if (Character.isDigit(text.charAt(0))){
MessageBox mb = new MessageBox(hauptFenster.getShell(),SWT.OK|SWT.ICON_WARNING);
mb.setMessage("Der DB-Name darf nicht mit einer Zahl beginnen!");
mb.open();
dbname.setText("");
dbname.setFocus();
}
}
}
});
Leider wird der Focus nicht auf das Textfeld zurückgesetzt sondern auf das nächste Feld.
Weiss jemand wie ich das lösen kann?
Vielen Dank
fanfan
Zuletzt bearbeitet: