Para la mayoría de las GUI que he usado, cuando un control que contiene texto se enfoca, se selecciona todo el contenido del control. Esto significa que si solo comienza a escribir, reemplaza completamente los contenidos anteriores.¿Existe alguna manera fácil de cambiar el comportamiento de un control Java/Swing cuando se enfoca?
Ejemplo: Tiene control de giro que se inicializa con el valor cero. Usted tabula y escribe "1" El valor en el control ahora es 1.
Con Swing, esto no sucede. El texto en el control no está seleccionado y el quilate aparece en un extremo u otro del texto existente. Continuando con el ejemplo anterior:
Con un JSpinner giratorio, cuando se desplaza hacia el control giratorio, el quilate está a la izquierda. Escribe "1" y el valor en el control ahora es 10.
Esto me impulsa a mí (y a mis usuarios) a una pared y me gustaría cambiarlo. Aún más importante, me gustaría cambiarlo globalmente para que el nuevo comportamiento se aplique a JTextField, JPasswordField, JFormattedTextField, JTextArea, JComboBox, JSpinner, y más. La única forma en que he encontrado esto es para agregar un FocusAdapter a cada control y anular el método focusGained() para Do The Right Thing [tm].
Tiene que haber una manera más fácil y menos frágil. ¿Por favor?
EDITAR: Una información adicional para este caso en particular. El formulario con el que estoy trabajando se generó utilizando el diseñador de formularios de Idea. Eso significa que normalmente no escribo el código para crear los componentes. Es posible decirle a Idea que quiere crearlos usted mismo, pero eso es una molestia que me gustaría evitar.
Lema: Todos los buenos programadores son básicamente flojos.
Encontré una solución que satisface mis necesidades. Está publicado como una respuesta. –