JOptionPane - Leereingabe, Wiederholen

J

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
 
F

fhoffmann

Top Contributor
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);
    }
}
 
J

Jürgen_

Mitglied
Danke sehr, klappt wunderbar für beide Namensabfragen - aber wie stelle ich auch sicher, dass nicht Zahlen eingegeben werden können?
 
mihe7

mihe7

Top Contributor
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.
 
B

BestGoalkeeper

Bekanntes Mitglied
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...
 

Ähnliche Java Themen

Anzeige


Oben