new - jtextfield java
Java: compruebe si JTextField está vacío o no (9)
Entonces me di cuenta que esta es una pregunta popular y ya encontré la solución. Pero cuando intento esto no funciona correctamente.
Mi JTextField está vacío y el botón no está habilitado. Cuando escribo algo en mi campo de texto, el botón no se habilita.
Así que mi programa debería revisar este campo cada segundo si está vacío o no. Tan pronto como alguien escriba algo en el campo de texto, el botón debería estar habilitado. ^^
loginbt = new JButton("Login");
loginbt.addActionListener(new loginHandler());
add(loginbt);
if(name.getText().equals("")) {
loginbt.setEnabled(false);
}else {
loginbt.setEnabled(true);
}
Bueno, el código que hace que el botón esté habilitado / deshabilitado:
if(name.getText().equals("")) {
loginbt.setEnabled(false);
}else {
loginbt.setEnabled(true);
}
debe estar escrito en javax.swing.event.ChangeListener
y adjuntarse al campo (ver here ). Un cambio en el valor del campo debe hacer que el oyente vuelva a evaluar el estado del objeto. ¿Que esperabas?
Lo que necesitas es algo que se llama Document Listener. Consulte Cómo escribir un documento de escucha .
Lo siguiente devolverá verdadero si el "nombre" de JTextField no contiene texto:
name.getText().isEmpty
Para comprobar JTextFiled está vacío o no condición:
if( (billnotf.getText().length()==0)||(billtabtf.getText().length()==0))
Para eso necesita agregar un detector de cambios (un DocumentListener
que reacciona ante un cambio en el texto) para su JTextField
, y dentro de actionPerformed()
, debe actualizar el loginButton
para habilitar / deshabilitar dependiendo de si el campo JTextfield
está vacío o no.
A continuación es lo que encontré de este thread .
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);
}
}
});
Prueba con keyListener en tu campo de texto
jTextField.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
if (text.getText().length() >= 1) {
button.setEnabled(true);
} else {
button.setEnabled(false);
}
}
@Override
public void keyReleased(KeyEvent e) {
}
});
Prueba esto
if(name.getText() != null && name.getText().equals(""))
{
loginbt.setEnabled(false);
}
else
{
loginbt.setEnabled(true);
}
Usa el siguiente código:
if(name.getText().equals(""))
{
loginbt.disable();
}
if(name.getText().hashCode() != 0){
JOptionPane.showMessageDialog(null, "not empty");
}
else{
JOptionPane.showMessageDialog(null, "empty");
}