it-swarm.com.de

Java - Prüfen Sie, ob JTextField leer ist oder nicht

Also habe ich erfahren, dass dies eine beliebte Frage ist und bereits die Lösung gefunden hat. Aber wenn ich das versuche, funktioniert es nicht richtig.

Mein JTextField ist leer und die Schaltfläche ist nicht aktiviert. Wenn ich etwas in mein Textfeld schreibe, wird die Schaltfläche nicht aktiviert. 

Mein Programm sollte dieses Feld also jede Sekunde überprüfen, ob es leer ist oder nicht. Sobald jemand etwas in das Textfeld schreibt, sollte die Schaltfläche aktiviert werden. ^^

loginbt = new JButton("Login");
    loginbt.addActionListener(new loginHandler());
    add(loginbt);

    if(name.getText().equals("")) {
        loginbt.setEnabled(false);
    }else {
        loginbt.setEnabled(true);
    }
18
ColdStormy

Dazu müssen Sie einen Änderungslistener (eine DocumentListener, die auf Änderungen im Text reagiert) für Ihre JTextField hinzufügen. Innerhalb von actionPerformed() müssen Sie die loginButton auf aktiviert/deaktiviert setzen, abhängig davon, ob die JTextfield leer ist oder nicht. 

Unten ist was ich aus diesem Thread gefunden habe.

yourJTextField.getDocument().addDocumentListener(new DocumentListener() {
  public void changedUpdate(DocumentEvent e) {
    changed();
  }
  public void removeUpdate(DocumentEvent e) {
    changed();
  }
  public void insertUpdate(DocumentEvent e) {
    changed();
  }

  public void changed() {
     if (yourJTextField.getText().equals("")){
       loginButton.setEnabled(false);
     }
     else {
       loginButton.setEnabled(true);
    }

  }
});
28
sanbhat

Folgendes gibt true zurück, wenn der "Name" von JTextField keinen Text enthält:

name.getText().isEmpty

11
Jacob

Was Sie brauchen, ist etwas namens Document Listener. Siehe Wie schreibe ich einen Document Listener .

4
Eng.Fouad

Nun, der Code, mit dem die Schaltfläche aktiviert/deaktiviert wird: 

if(name.getText().equals("")) {
    loginbt.setEnabled(false);
}else {
    loginbt.setEnabled(true);
}

muss in javax.swing.event.ChangeListener geschrieben und an das Feld angehängt sein (siehe hier ). Eine Änderung des Feldwerts sollte den Listener dazu veranlassen, den Objektstatus neu zu bewerten. Was hast du erwartet?

3
darijan

verwenden Sie den folgenden Code:

if(name.getText().equals(""))
{
loginbt.disable();
}
2
user3148337

So prüfen Sie, ob JTextFiled leer ist oder keine Bedingung ist:

if( (billnotf.getText().length()==0)||(billtabtf.getText().length()==0))
2
user3369245

Versuche dies

if(name.getText() != null && name.getText().equals(""))
{
        loginbt.setEnabled(false);
}
else
{
        loginbt.setEnabled(true);
}
0
Aneeq Anwar
if(name.getText().hashCode() != 0){
    JOptionPane.showMessageDialog(null, "not empty");
}
else{
    JOptionPane.showMessageDialog(null, "empty");
}
0
Sijo Jose