JOptionPane - Leereingabe, Wiederholen

Jürgen_

Mitglied
Guten Tag zusammen,

gibt es die Möglichkeit wenn kein Name, sondern einfach Enter gedrückt oder Zahlen in mein erscheinendes Fenster eingegeben werden, eine Fehlermeldung erscheint und die Anfrage erneut gestellt wird?

beste Grüße
Jürgen
 
Java:
public class Test {
    public static void main (String[] args) {
        String result = "";
        while (result.equals("")) {
            result = javax.swing.JOptionPane.showInputDialog("Bitte geben Sie was ein");
        }
        System.out.println(result);
    }
}
 
Du kannst z. B. mit result.matches den String gegen reguläre Ausdrücke prüfen.

Beispiel: result.matches("^\\p{Alpha}+$") stellt sicher, dass gibt zurück, ob result ausschließlich aus Buchstaben (Groß-/Kleinschreibung egal) besteht und nicht leer ist.
 
aber wie stelle ich auch sicher, dass nicht Zahlen eingegeben werden können?
Java:
	public static boolean isInvalid(String name) {
		return name == null || name.isEmpty() || name.matches(".*\\d.*");
	}

	public static String getName(int i) {
		while (true) {
			String name = JOptionPane.showInputDialog(null, "Bitte Spielername " + i + " eingeben:");
			if (isInvalid(name)) {
				JOptionPane.showMessageDialog(null, "Der Spielername war ungültig, bitte keine Zahlen.");
			} else {
				return name;
			}
		}
	}

	public static void main(String[] args) {
		System.out.println(getName(1));
		System.out.println(getName(2));
	}

Wobei nun allerdings Sonderzeichen erlaubt wären...
 

Zurück
Oben