2017-08-13 4 views
0

Ich habe eine jTextField und ich möchte überprüfen, ob ihre Werte leer sind oder nicht.Wie erstellt man jTextField.checkEmpty()

Bisher kann ich es auf diese Weise tun:

public static JTextField checkEmpty(JTextField jTextField) { 
    if (jTextField.getText().equals(" ") || jTextField.getText().isEmpty()) { 
     return null; 
    } else { 
     return jTextField; 
    } 
} 

Allerdings möchte ich es in der Art und Weise unten gesehen tun:

JTextField jTextField = new JTextField(); 

jTextField.checkEmpty(); 

Dies wird durch Rückgabe eines jTextField wenn es funktionieren würde ist nicht leer, und werfen Sie eine Ausnahme oder zeigen Sie sonst showMessageDialog.

Ich bin mir nicht sicher, ob dies möglich ist, so dass jede Hilfe geschätzt werden würde.

Mit all dem gesagt, die eigentliche Idee ist, ich möchte eine Validierungsklasse für eine Schwungkomponente in meinem Projekt erstellen. Wenn ich das schaffen kann, kann ich es in meine Validierungsklasse aufnehmen.

Vielen Dank.

Antwort

2

Sie müssen eine eigene Klasse implementieren, die die JTextField-Klasse erweitert und die gewünschte Methode hinzufügt.

  • Erstens: Sie sollten JTextField wie verlängern:

    class MyJTextField extends JTextField 
    { 
        public MyJTextField(String defVal, int size) 
        { 
        super(defVal, size); 
        } 
        public MyJTextField() 
        { 
        super("", size); 
        } 
    
    } 
    
  • Zweitens: Sie sollten Ihre checkEmpty() -Methode hinzufügen, und Sie brauchen nicht die JTextField Argument:

    public MyJTextField checkEmpty() { 
    if (this.getText().equals("") || 
        this.getText().isEmpty()) 
        { 
        // throw your exception. 
        // print message or whatever you need 
        return null; 
        } else { 
        return this; 
        } 
    } 
    
  • Dann: Sie können es wie folgt verwenden:

    MyJTextField jTextField = new MyJTextField(); 
    
    jTextField.checkEmpty(); 
    
+0

Denken Sie, wir haben 10 JTextField. Will ich dieses für jedes JTextField erstellen. –

+1

Nein, nur eine und Ihre 10 JTextField werden Instanzen dieser Klasse sein. –