Java - Abortar eventos java

 
Vista:

Abortar eventos java

Publicado por Marco Antonio (57 intervenciones) el 19/01/2006 11:13:58
Holas primeramente quiero felicitarles por el excelente trabajo que realizan.
Mi problema es que estoy valindando un TextField en java y no se como hago para que este no reciba teclas no autorizadas mas o menos quiero hacer lo que en delphi se hace como

Evento OnkeyPressEdit1(...)
begin
if(not key in('0'..'9',#13,#7)) then Abort;
end;

Este Edit solo permite introducir numeros y las teclas enter y de retroceso.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Abortar eventos java

Publicado por Gilberto (378 intervenciones) el 23/01/2006 00:43:34
Hay varias maneras, una es que tu clase donde está el TextField implemente la interface KeyAdapter:

class XXXXX extends YYYYY implements KeyAdapter {

TextField textfield;
String buffer = ""; // buffer que va a almacenar la cadena a desplegar
// en el TextField
....

public XXXXX() { // En el constructor de tu clase donde va el TextField debes
//añadirle el KeyListener, que en este caso, es esta mísma clase
...
textfield.addKeyListener(this);
}

// otros métodos

public void keyPressed(KeyEvent e) {}
public void keyReleased(KeyEvent e) {}
public void keyTyped(KeyEvent e) {
char c = e.getKeyChar();
swicth(c){
case '0':
case '1':
case '2':
...
case'\b':
case'\r': ProcesarCaracter(c);
default:e.consume();
}

public void ProcesarCaracter(char c) {
String ch = new String(c); //convertir a String para añadirlo al buffer
buff = buff + ch;
.... // algún otro proceso con el caracter
textfield.setText(buff);
}

...

}

e.consume() asegurá que los carácteres que no sean procesados en la anterior etiqueta del switch, serán desechados de la entrada. La desventaja es que hay que mantener un buffer con los carácteres válidos, para poder visualizarlos en el TextField
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar