Gracias por responder.
Pero seguí investigando en Internet y llegué a la conclusión de que es
un poco peligroso emplear esos métodos, ya que la lectura del teclado
puede depender del Look & Feel de la aplicación, y en especial para
poder controlar la entrada cuando se hace "cortar y pegar" para llenar
un campo de texto.
En lugar de eso, encontré lo siguiente:
class EnableButton extends JFrame
{
public EnableButton()
{
....
JTextField jtf1 = new JTextField();
Document jtf1Document = jtf1.getDocument();
jtf1Document.addDocumentListener(new ButtonStateController());
JFormattedTextField jftf2 = new JFormattedTextField(new
jftf2Formatter());
Document jftf2Document = jftf2.getDocument();
jftf2Document.addDocumentListener(new ButtonStateController());
....
}
private class ButtonStateController implements DocumentListener
{
ButtonStateController()
{
}
public void changedUpdate(DocumentEvent e)
{
disableIfEmpty(e);
}
public void insertUpdate(DocumentEvent e)
{
disableIfEmpty(e);
}
public void removeUpdate(DocumentEvent e)
{
disableIfEmpty(e);
}
public void disableIfEmpty(DocumentEvent e)
{
addHostButton.setEnabled((jtf1.getText().length() > 0 &&
jftf2.
isEditValid()));
}
}
}
public class jftf2Formatter extends DefaultFormatter
{
@Override
public String valueToString(Object value) throws ParseException
{
....
}
@Override
public Object stringToValue(String text) throws ParseException
{
....
}
}
Lo he probado, y funciona de maravilla.
Espero que sirva mi aporte.
Saludos, y gracias de nuevo.
[Adrián]
On 23 sep, 17:07, Débora Hisgen <
debo.his...@gmail.com> wrote:
> Supongamos que tenes 3 JFormattedTextFields: jf1, jf2 y jf3. Y tu JButton
> boton.
>
> Una forma, a grandes rasgos, de implementarlo seria:
>
> 1- Generar un método dentro del cual estes chequeando las condiciones
> necesarias para habilitar el botón ...
>
> public void validarCondiciones(){
> //valida que sea distinto de vacio en este caso
> if(jf1.getText().trim().length() != 0&&jf2.getText().trim().length() !=
> 0&&jf2.getText().trim().length() != 0){
> boton.setEnable(true);
> }}
>
> 2-Agregales un KeyListener a cada uno de los JFormattedTextFields:
> jf1.addKeyListener(new TuKeyListener());
>
> En tu caso en particular, calculo que realizarías la llamada al metodo
> validarCondiciones, dentro del keypressed, según lo que describis.
>
> private class TuKeyListener implements KeyListener {
>
> public void keyPressed(KeyEvent e) {
> validarCondiciones();
> }
>
> public void keyReleased(KeyEvent e) {
>
> }
>
> public void keyTyped(KeyEvent e) {
>
> }
> }
>
> Slds
>
> 2009/9/23 Adrián E. Córdoba <
software.a...@gmail.com>