Foros del Web » Programación para mayores de 30 ;) » Java »

Entrar entero o decimal en JText (JApplet)

Estas en el tema de Entrar entero o decimal en JText (JApplet) en el foro de Java en Foros del Web. Holas; Tengo el siguiente codigo: Código PHP: public class  teclado  implements  KeyListener      {         public  void keyTyped ( KeyEvent ev ) {  teclas ( ev ); }         public  void keyPressed ( ...
  #1 (permalink)  
Antiguo 24/06/2006, 23:38
 
Fecha de Ingreso: diciembre-2004
Ubicación: Iquique, Chile
Mensajes: 150
Antigüedad: 19 años, 11 meses
Puntos: 0
Pregunta Entrar entero o decimal en JText (JApplet)

Holas;

Tengo el siguiente codigo:

Código PHP:
public class teclado implements KeyListener
    
{
        public 
void keyTyped(KeyEvent ev) { teclas(ev); }
        public 
void keyPressed(KeyEvent ev) { teclas(ev); }//teclas(ev);
        
public void keyReleased(KeyEvent ev) { teclas(ev); }
    }
    
//----------------------------------------------------------------------------------
    
private void teclas(KeyEvent k)
    {
        
int cad txt1.getText().length();
        
int i;
        for(
4491i++)
        {
            if(
k.getKeyCode() == || k.getKeyCode()==16)
            {
                
txt1.select(cad-1,cad);
                
txt1.replaceSelection("");
            }
        }
    } 
Cuando tipeo una letra, obviamente, la anulo. El problema viene, cuando la sigo presionando aparece la fila del caracter que presione.

Para solucionar esto coloque la function en KeyPressed, el asunto es... cuando captura letra o signo, siempre va acortando la cadena inicial hasta borrar todo del textbox.

Existe otra alternativa de capturar esto antes de mostrarlo, como se realiza en C++, el ejemplo solamente deja ingresar el ".", ya que es entrada de enteros o decimal. Se ve muy feo que ingresa un signo y luego retrocede borrandolo.

Nos vemos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:22.