Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/08/2009, 15:16
Zidek
 
Fecha de Ingreso: junio-2009
Mensajes: 59
Antigüedad: 14 años, 11 meses
Puntos: 0
Como extender un KeyListener

Hola, tengo el siguiente código que está abajo que lo quiero aplicar además de sobre el jFormattedTextField4, sobre más jFormattedTextField diferentes. Lo que hace es, a la par que escribo un double en jFormattedTextField4...lo escribe tb en jFormattedTextField3. Tengo tb un evento mouseClicked sobre jFormattedTextField4, lo que explicaría algún paso que veréis, PERO EN ESTE CASO EL CÓDIGO ES LO MENOS IMPORTANTE!
Copiarlo y pegarlo este código en cada jFormattedTextField y cambiar el numero (jFormattedTextField4->jFormattedTextField5) es una opción, pero quiero hacerlo extendiendo KeyListener, de manera que ahorrarme lineas de codigo...¿Como lo podría hacer? Me imagino que crear un nuevo paquete dentro del proyecto, con una clase que extienda a KeyListener, ¿cómo seguiría el esqueleto de ese código?

Código PHP:
        this.jFormattedTextField4.addKeyListener(new KeyListener() {
        @
Override
            
public void keyPressed(KeyEvent e) {
                
displayInfo(e);  //llamamos al metodo displayinfo

            
}

            protected 
void displayInfo(KeyEvent e){
                
int keyCode e.getKeyCode();  //obtenemos el codigo de la tecla
                
String keyText e.getKeyText(keyCode);  //luego el caracter
                
                
if( (Double.parseDouble(jFormattedTextField4.getValue().toString()) != 0) && (!(jFormattedTextField4.getText().isEmpty())) ){
                    
int keyCode2 e.getKeyCode();
                    
keyTxt += e.getKeyText(keyCode2);
                    
/*System.out.println(keyTxt);*/
                
}else{
                    if((
jFormattedTextField4.getText().isEmpty())){
                        
keyTxt "";
                    }
                }
                if( (
"Suprimir".equals(keyText)) || ("Retroceso".equals(keyText)) || (keyText.contains("NumPad-")) || ("Comma".equals(keyText))
                        || (
"Suprimir".equals(keyTxt)) || ("Retroceso".equals(keyTxt)) || (keyTxt.contains("NumPad-")) || ("Comma".equals(keyTxt))){
                    if( (
"Retroceso".equals(keyText)) || ("Suprimir".equals(keyText)) || ("Retroceso".equals(keyTxt)) || ("Suprimir".equals(keyTxt)) ){
                        
keyText e.getKeyText(48);
                    }else if(
"Comma".equals(keyText) || "Comma".equals(keyTxt)){
                        
keyText "."/*e.getKeyText(44)*/;
                        
                    }
                    else{
                        
keyText keyText.substring(keyText.length()-1).trim();
                    }
                }

                
keyTxt += keyText;
                
/*System.out.println(keyTxt);*/
                
jFormattedTextField3.setValue(Double.parseDouble(keyTxt.toString()));  //lo pintamos en el campo descuento y aparece en el campo precio
                
            
}

            public 
void keyReleased(KeyEvent e) {

            }

            public 
void keyTyped(KeyEvent e) {

            }


        });