2016-03-29 20 views
1

Ich möchte eine Reihe von verschiedenen JTextFields in meinem Java-Projekt validieren. Eine davon ist sicherzustellen, dass der Benutzer eine Nummer in ein bestimmtes Feld eingibt. Ein anderes Problem, das ich habe, ist in der Lage, eine bestimmte Nummer zu validieren, wie 1234 in einem Feld, wenn eine Übermittlungsschaltfläche gedrückt wird.Wie validiere ich ein JTextField in Eclipse?

Wenn ich eine Methode in einer separaten Klasse erstellen muss, dann ist das in Ordnung, aber wie würde ich die Methode in meine GUI-Klasse für meine JTextField verwenden.

Ich bin ziemlich neu in Java und finde einige davon schwer, so dass jede Hilfe sehr geschätzt wird. Ich

in der Minute haben:

import java.awt.BorderLayout; 

public class CashDialog extends JDialog { 

    private final JPanel contentPanel = new JPanel(); 
    private JTextField txtEmilysBistro; 
    private JTextField textconfirmNumber; 
    private String confirmNumber; 
    private JButton btnSubmit; 

    /** 
    * Launch the application. 
    */ 
    public static void main(String[] args) { 
     try { 
      CashDialog dialog = new CashDialog(); 
      dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); 
      dialog.setVisible(true); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

    /** 
    * Create the dialog. 
    */ 
    public CashDialog() { 

     this.confirmNumber = confirmNumber; 

     setBounds(100, 100, 526, 372); 
     getContentPane().setLayout(new BorderLayout()); 
     contentPanel.setBackground(new Color(255, 0, 153)); 
     contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5)); 
     getContentPane().add(contentPanel, BorderLayout.CENTER); 
     contentPanel.setLayout(null); 
     { 
      txtEmilysBistro = new JTextField(); 
      txtEmilysBistro.setBackground(new Color(255, 0, 153)); 
      txtEmilysBistro.setHorizontalAlignment(SwingConstants.CENTER); 
      txtEmilysBistro.setForeground(new Color(255, 255, 255)); 
      txtEmilysBistro.setFont(new Font("AR ESSENCE", Font.PLAIN, 50)); 
      txtEmilysBistro.setEditable(false); 
      txtEmilysBistro.setText("Emily's Bistro"); 
      txtEmilysBistro.setBounds(0, 0, 504, 57); 
      contentPanel.add(txtEmilysBistro); 
      txtEmilysBistro.setColumns(10); 
     } 

     JTextArea txtrConfirm = new JTextArea(); 
     txtrConfirm.setForeground(new Color(255, 255, 255)); 
     txtrConfirm.setBackground(new Color(255, 0, 153)); 
     txtrConfirm.setEditable(false); 
     txtrConfirm.setFont(new Font("AR ESSENCE", Font.PLAIN, 25)); 
     txtrConfirm.setText("Please allow your waiter/waitress to enter   the confirmation number."); 
     txtrConfirm.setBounds(54, 73, 407, 77); 
     contentPanel.add(txtrConfirm); 
     txtrConfirm.setLineWrap(true); 

     textconfirmNumber = new JTextField(); 
     textconfirmNumber.setFont(new Font("AR ESSENCE", Font.PLAIN, 30)); 
     textconfirmNumber.setBounds(147, 148, 227, 47); 
     contentPanel.add(textconfirmNumber); 
     textconfirmNumber.setColumns(10); 

     btnSubmit = new JButton("Submit"); 
     btnSubmit.setBackground(new Color(102, 51, 255)); 
     btnSubmit.setForeground(new Color(255, 255, 255)); 
     btnSubmit.setFont(new Font("AR ESSENCE", Font.PLAIN, 25)); 
     btnSubmit.setBounds(184, 211, 162, 29); 
     contentPanel.add(btnSubmit); 

    } 
} 

In diesem speziellen Textfeld Ich möchte nur sie die Nummer 1234 in das Textfeld zu übernehmen.

+0

Einige Codes anzeigen. Probieren Sie es zuerst aus, bevor Sie eine Frage stellen. – Francisunoxx

+0

Ich habe versucht ... Mit actionlistner auf Tasten und versuchen zu verwenden, wenn Anweisung usw. Ich habe buchstäblich keine Ahnung, wie Sie meine Felder zu überprüfen ... – EJHall

+0

Geben Sie Ihren vollständigen Code hier. – Francisunoxx

Antwort

0

Es gibt ein paar Probleme mit Ihrem Code, aber das ist nebensächlich. Um Ihre Frage speziell hier anzusprechen, ist ein Ansatz. Gewähre es, du würdest wahrscheinlich anders damit umgehen wollen, vergewissere dich, dass du eine Integer erhältst, anstatt Strings zu vergleichen, aber auf diese Weise würdest du der Übermittlungsschaltfläche einen Listener hinzufügen.

 btnSubmit.addActionListener(new ActionListener() 
     { 

       @Override 
       public void actionPerformed(ActionEvent arg0) 
       { 
        final String data = txtrConfirm.getText(); 
        if(data.compareTo("1234") != 0) 
        { 
         // alert the user 
        } 
        else 
        { 
         // data is good, do something with it 
        } 
       } 

     }); 
+0

Ich habe gerade erst gesehen Dies aber ich habe eine IF-Anweisung hinzugefügt und es scheint zu funktionieren. Können Sie die anderen Probleme näher erläutern? – EJHall

+0

Nur ein paar Dinge, die ich beim Kompilieren des Codes bemerkt habe. – Craig

+0

Ugg Enter drücken, um zurückzukehren, dauerte dann zu lange zum Bearbeiten :-). Nur ein paar Dinge, die ich beim Kompilieren des Codes bemerkt habe. Sie haben ein paar Imports verloren, aber das haben Sie bestimmt herausgefunden. Auch nicht sicher, was die Absicht von "this.confirmNumber = confirmNumber;" ist. Das setzt es sich selbst gleich. – Craig