contador gratuito


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
validar números negativos en un JTextField
Autor Mensaje
hug0 Sin conexión
Usuario

Mensajes: 18
Registro en: Apr 2013
Reputación: 0
Google + Twitter YouTube
Mensaje: #1
validar números negativos en un JTextField
Traslado la pregunta de un usuario que hizo en el post Validación de JTextField: TextField numérico, binario o solo letras.

Cita:como seria el codigo para k un jtextfield acepte numeros negativos

Suponiendo que tenemos un caja de texto y un boton para enviar o procesar el contenido, lo más sencillo sería que al presionar el botón este haga una validación si el número en el jtextfield es mayor o menos a cero y SAS!! santo remedio. Algo así como:

Código:
if (texto.getText() < 0){
  //num negativo
}else{
  //num positivo
}

Pero no sé si con eso le bastaría al amigo de la pregunta así que lo vamos a hacer más complicado. Vamos a hacer en este ejemplo que en el jtextfield se permita escribir el símbolo negativo al principio y se eliminen los demás si se intentan escribir otros.

Para eso un formulario sencillo con un jtextfield agregado nos bastará.
Primero agregamos el evento KeyTyped al jtextfield (clic derecho sobre la caja de texto-->Eventos-->Key-->KeyTyped) y ahí escribimos este código:
Código:
//primer metodo
//escribe solo numeros y el guion o simbolo negativo en este caso
char car = evt.getKeyChar();
    
if((car<'0' || car>'9') && (car!=(char) KeyEvent.VK_MINUS)){
  evt.consume();
}

Este permite escribir números y el guión en el jtextfield. Ahora agregamos el evento KeyReleased de la misma forma. Este sería su código:
Código:
//segundo metodo
//lo utilizamos para que solo permita el signo negativo al principio
    
//posicion del primer simbolo
int pos = txtTexto.getText().indexOf("-");
    
//posicion de otros simbolos si se intentase escribir
int pos2 = txtTexto.getText().indexOf("-",1);
    
//texto de la caja de texto
String texto = txtTexto.getText();
char car = evt.getKeyChar();
    
if ((car==(char) KeyEvent.VK_MINUS) && (pos!=0) || (pos2!=-1)){
  //si se escribe un signo negativo que no sea al principio
  //de la cadena, estos se eliminan
  txtTexto.setText(texto.substring(0, 1) + "" + texto.substring(1, texto.length()).replaceAll("-", ""));
}

En este segundo código se eliminan los demás signos negativos que se intenten escribir. No estoy seguro si es la mejor manera pero una forma es.

Descargar código

Conocimiento libre con software libre
14-06-2013 05:24 PM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Enviar respuesta 


Salto de foro:


Contáctanos | Foro Garabatos Linux | Volver arriba | Volver al contenido | Archivo (Modo simple) | Sindicación RSS