new java swing jbutton jtextfield documentlistener

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 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"); }