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
 

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);
    }
}
 

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

Gast
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

Neue Themen


Oben