Recientemente encontré un error en java donde JList activará el método valueChanged() dos veces al cambiar un valor con el mouse, y solo una vez al cambiar un valor con el teclado. Acabo de encontrar a bug con respecto a esto en el sitio web de Oracle (aparentemente, el error es más de doce años), y me pregunto si alguien puede explicarme por qué Oracle ha decidido que esto no es un defecto (no mencionar que getValueIsAdjusting() devuelve falso cuando se usa el teclado).JList dispara valueChanged dos veces cuando se cambia un valor mediante mouse
Para cualquiera que tenga este problema, descubrí que simplemente comprobando cuando getValueIsAdjusting()
es falso, y luego ejecutar el resto de mi método solucionará el problema.
Véase también http://stackoverflow.com/a/12193333/1076463 – Robin
¿Cuál es la pregunta aquí? –
no es un error, es una característica ;-) En serio, es bien conocido (tos ... olvídalo yo mismo ocasionalmente) que la mayoría de las veces solo las notificaciones con! GetIsValueAdjusting son relevantes para el código de la aplicación. Además de eso, ¿de qué te quejas exactamente? – kleopatra