foco

Txiki_3
18 de Julio del 2003
Hola peña:

A ver quien me puede decir como le digo a un JToggleButton dentro de un Jpanel sin gestor de comportamiento (layout) que me coja el foco y que se lo pase al componente que yo quiera.

He estado mirando requestFocus() y metodos parecidos pero que no lo encuentro.

Gracias

Luismahou
18 de Julio del 2003
Hola!

El método requestFocus() es suficiente para recuperar el foco. Si quieres que el ToggleButton recoja el foco sólo tienes que invocarlo. Pero en vez de recoger el foco y pasarselo a otro componente, lo que tienes que hacer es llamar al requestFocus() del componente que quieras que recoja el foco.

Luismahou

Txiki_3
18 de Julio del 2003
o sea que cuando creo los objetos y se los paso al panel, a uno de los botones le meto el metodo requestFocus(), y ese es el que se queda el foco? Pues lo he intentado y no lo consigo al arrancar la aplicación siempre tiene el foco el mismo objeto, y no es al que le he aplicado el metodo requestFocus(), alguna idea????

Luismahou
18 de Julio del 2003
Si haces empiezas a crear una interfaz. Le insertas un botón, y llamas al requestFocus() de ese botón, y luego sigues creando la interfaz, es posible que java llame internamente al requestFocus() para algún elemento. Por tanto, te recomiendo que lo llames cuando ya has añadido todos los componentes, escuchadores... Como prueba, puedes crearte una ventana con dos JTextfield. Primero le asignas el foco a uno y luego a otro mediante el requestFocus(). En los Jtextfield es fácil saber si tienen el foco porque aparece el cursor en ellos para que puedas escribir.
A mí el requestFocus me funciona perfectamente, y hasta ahora no me ha dado ningún problema.

Saludos,

Luismahou

Txiki_3
18 de Julio del 2003
Muchas Gracias peña, pero al fin he conseguido cambiar el jodio foco.

Mi problema estaba en que intentaba cambiar el foco antes de hacer visibles los objetos, todo consiste en cambiarlo de sitio y a funcionar. Si le indicas al objeto el metodo requestFocus() antes de mostrarlo no hace ni caso, y el foco se situa en el primer componente que añades al panel.

Ciao

rkrdo
18 de Julio del 2003
Excelente, este foro es mas rápido de mirar el API :)

Gracias

Ricardo R.