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

Problema con Enter

Estas en el tema de Problema con Enter en el foro de Java en Foros del Web. Buenos días a todos, Tengo en un JtextField un Keylistener que cuando pulse la tecla Enter haga una determinada tarea. Lo tengo de la siguiente ...
  #1 (permalink)  
Antiguo 14/05/2012, 01:56
Avatar de caruizj  
Fecha de Ingreso: marzo-2012
Ubicación: Málaga
Mensajes: 161
Antigüedad: 12 años
Puntos: 14
Problema con Enter

Buenos días a todos,

Tengo en un JtextField un Keylistener que cuando pulse la tecla Enter haga una determinada tarea.

Lo tengo de la siguiente forma:

Cita:
public void keyTyped(KeyEvent e) {

char c = e.getKeyChar();

if (e.getKeyText(e.getKeyChar()).equals("Intro")) RealizarPedido();

}

});
Pues bien, en mi portatil va bien, pero en algunos ordenadores va bien y en otros no...

¿A qué se puede deber? ¿Cómo lo hacéis ustedes normalmente? ¿Debería de ponerlo como keystroke ó ASCII?

Lo suyo sería que funcionara en todos los PC, pero no entiendo porque no funciona así. Creo que tiene que ser algo del idioma del teclado o algo que en vez de intro esté cogiendo Enter.

Un saludo y gracias.
__________________
Aprendiendo un poco de Java :D
  #2 (permalink)  
Antiguo 14/05/2012, 05:25
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 7 meses
Puntos: 188
Respuesta: Problema con Enter

Primero haz esto

Transforma el codigo para sacar por consola el valor de e.getKeyText(e.getKeyChar()) cuando pulsas una tecla.

Pulsa enter.

Con el valor numerico que te da (juraría que es numérico), rehaz el código anterior de forma que te quede:

if (e.getKeyText(e.getKeyChar()) == valorEnter) RealizarPedido();

NOTA: Igual te valdría usar KeyEvent.VK_ENTER, pero creo que esto es de awt y lo que tú usas es swing.


}
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #3 (permalink)  
Antiguo 14/05/2012, 05:32
Avatar de caruizj  
Fecha de Ingreso: marzo-2012
Ubicación: Málaga
Mensajes: 161
Antigüedad: 12 años
Puntos: 14
Respuesta: Problema con Enter

Cita:
Iniciado por Fuzzylog Ver Mensaje
Primero haz esto

Transforma el codigo para sacar por consola el valor de e.getKeyText(e.getKeyChar()) cuando pulsas una tecla.

Pulsa enter.

Con el valor numerico que te da (juraría que es numérico), rehaz el código anterior de forma que te quede:

if (e.getKeyText(e.getKeyChar()) == valorEnter) RealizarPedido();

NOTA: Igual te valdría usar KeyEvent.VK_ENTER, pero creo que esto es de awt y lo que tú usas es swing.


}
Lo primero muchas gracias por tu respuesta.

Me sale Intro poniendo e.getKeyText(e.getKeyChar())


Pero en el otro PC no me rula. :(
__________________
Aprendiendo un poco de Java :D
  #4 (permalink)  
Antiguo 14/05/2012, 05:34
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 7 meses
Puntos: 188
Respuesta: Problema con Enter

¿¿ En el otro pc ??

Bueno olvídalo, prueba a sacar e.getKeyChar() por consola

Y luego poner en la condición if (e.getKeyChar() == valorEnter) RealizarPedido();

También puedes hacer una prueba por si te funciona

if (e.getKeyChar() == KeyEvent.VK_ENTER) RealizarPedido();
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #5 (permalink)  
Antiguo 14/05/2012, 16:24
Avatar de zero0097  
Fecha de Ingreso: abril-2010
Ubicación: México
Mensajes: 481
Antigüedad: 13 años, 11 meses
Puntos: 69
Respuesta: Problema con Enter

mira yo siempre lo hago con el VK... y ademas tu codigo tiene un ;;; al final, en la declaracipón de un metodo eso no va.....

Código:
public void keyTyped(KeyEvent e) {

if(e.getKeyCode() == KeyEvent.VK_ENTER) {
//que hada una tarea
} else 
//se presiono otra tecla

)
__________________
De nada, hay te encargo +1...
  #6 (permalink)  
Antiguo 15/05/2012, 01:53
Avatar de caruizj  
Fecha de Ingreso: marzo-2012
Ubicación: Málaga
Mensajes: 161
Antigüedad: 12 años
Puntos: 14
Respuesta: Problema con Enter

Con VK_ENTER si me funciona.

Es curioso porque he probado
JOptionPane.showMessageDialog(null, e.getKeyText(e.getKeyChar()));

En unos 7 ordenadores, y el resultado es:

Intro
Enter
Introduzca

Bueno, muchas gracias a los dos por la ayuda.

PD: Fuzzy que no entendías exactamente de la parte "Mi otro PC".
__________________
Aprendiendo un poco de Java :D
  #7 (permalink)  
Antiguo 15/05/2012, 01:53
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 7 meses
Puntos: 188
Respuesta: Problema con Enter

Yo creo que lo del ); al final es porque recortó ese código de alguna llamada a una clase que había justo antes y que sólo puso el método contenido en esa clase.

Por otra parte zero, ¿tú usas swing o awt?

Edito: caruizj, quizas deberias ponerles a todos el mismo locale, igual es distinto usar EN que ES - España o ES - Intenacional :D
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #8 (permalink)  
Antiguo 15/05/2012, 02:04
Avatar de caruizj  
Fecha de Ingreso: marzo-2012
Ubicación: Málaga
Mensajes: 161
Antigüedad: 12 años
Puntos: 14
Respuesta: Problema con Enter

Lo del VK_ENTER me funciona en unos ordenadores si y en otros no. Voy a probar lo del Locale a ver...

Yo no entiendo porque es tan complicado poner un escuchador de Intro... No consigo que funcione en todos los ordenadores, aunque VK_Enter me funciona en alguno más.
__________________
Aprendiendo un poco de Java :D
  #9 (permalink)  
Antiguo 15/05/2012, 02:21
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 7 meses
Puntos: 188
Respuesta: Problema con Enter

Sólo puedo decir ...

Cita:
ADVERTENCIA: Al margen de las claves que se definen por el lenguaje Java (VK_ENTER, VK_BACK_SPACE y VK_TAB), no se basan en los valores de las constantes VK_. Sun se reserva el derecho de modificar estos valores según sea necesario para dar cabida a una gama más amplia de los teclados en el futuro.
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #10 (permalink)  
Antiguo 15/05/2012, 02:26
Avatar de caruizj  
Fecha de Ingreso: marzo-2012
Ubicación: Málaga
Mensajes: 161
Antigüedad: 12 años
Puntos: 14
Respuesta: Problema con Enter

Vamos en otras palabras, no puedo hacer que un simple intro funcione en cualquier ordenador, jeje.

Un saludo y muchas gracias por tu ayuda fuzzy, como siempre.
__________________
Aprendiendo un poco de Java :D
  #11 (permalink)  
Antiguo 15/05/2012, 14:55
Avatar de zero0097  
Fecha de Ingreso: abril-2010
Ubicación: México
Mensajes: 481
Antigüedad: 13 años, 11 meses
Puntos: 69
Respuesta: Problema con Enter

Yo he usado Swing siempre que he necesitado, de awt solo para dibujar.... a mi el VK_ENTER me ha funcionado siempre, pero si, esa advertencia que colocó Fuzzylog no debe despreciarse, los teclados cambian y puede ser que los códigos también...

y pues para complementar http://docs.oracle.com/javase/1.3/do.../KeyEvent.html

en el Method Sumary viene un setKeyCode y un setKeyChar, asi podrias tu cambiar el código a la tecla enter para que no cambie en equipos la cambias dentro de tu app para que siempre este acorde a tu programa...
__________________
De nada, hay te encargo +1...
  #12 (permalink)  
Antiguo 16/05/2012, 13:21
Avatar de caruizj  
Fecha de Ingreso: marzo-2012
Ubicación: Málaga
Mensajes: 161
Antigüedad: 12 años
Puntos: 14
Respuesta: Problema con Enter

Muchas gracias zero, voy a intentar aplicar el setKeyCode, porque no consigo que funcione en un equipo que tengo...

Saludos.
__________________
Aprendiendo un poco de Java :D

Etiquetas: enter
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 16:18.