2016-10-14 3 views
1

Hallo, ich bin neu in Java und ich möchte eine Frage bezüglich JOptionPane.showinput stellen, so dass es nur Buchstaben/Zahlen nur akzeptiert und wenn sie eine falsche eingeben eine wird es zu einem Fehler führen und muss erneut eingeben (suchte die Website nach einer Lösung, aber sie funktionieren nicht auf meinem Code, ich weiß nicht warum) Und schließlich plante ich mehrere Entscheidungen auf meiner joptionpane, aber wenn ich typisierte Symbol, um es als Fehler registriert wurde here mein CodeJOptionPane.showinputdialog Nur Eingabe von Buchstaben oder Zahlen und Multiple Choice

JFrame frame = new JFrame("Student Record"); 
JOptionPane.showMessageDialog(frame, 
    "Welcome to the School's Student Grade Record!"); 
System.out.println("School's Student Grade Record"); 
String name; 
name = JOptionPane.showInputDialog(frame,"Enter the name of the student"); 
System.out.println("The name of the student is: "+name); 
Object[] choices = {"Filipino", "Math", "English"}; 
String grade = (String)JOptionPane.showInputDialog(frame, 
    "What grade subject do you choose to input?\"","Customized Dialog", 
    JOptionPane.PLAIN_MESSAGE,icon,choices,"Math"); 
System.exit(0); 

Antwort

1

für eine gültige Zeichenfolge erhalten, die nur Buchstaben und Zahlen dann regex enthält, ist eine große Hilfe ^[a-zA-Z0-9] * $ ermöglicht es nur Buchstaben und Zahlen nur und der folgende Code wird wiederholt fragen, bis eine gültige Eingabe

String input; 
      String string = ""; 
      do { 
       input = JOptionPane.showInputDialog("Enter String "); 
       if (input.matches("^[a-zA-Z0-9]*$")) { 
        string = input; 
        System.out.println("Name "+string); 
       } else { 
        System.out.println("Please enter a valid name containing: ‘a-z’ or ‘A-Z’ lower or upper case or numbers"); 
       } 
      } while (!input.matches("^[a-zA-Z0-9]*$")); 

jetzt über Ihr Symbol hier gegeben ist, ist eine Möglichkeit, spezifizieren icons

+0

Hallo danke für deine Antwort kann ich fragen was^tun? – Yamiess

+0

Hallo dort benutzte deinen Code und es funktionierte gut löschte die 0-9 obwohl ich nur die Buchstaben und so brauche, aber dann stieß ich auf ein Problem, wo das Setzen des Platzes auf dem Namen in der Bitte einen gültigen Namen .. irgendein ergibt Ideen, was ich auf die Input Matches setzen soll? – Yamiess

+0

Nevermind putted einen Platz und es hat funktioniert Danke: D – Yamiess