transferir requestfocus que poner grabfocus foco evento enfocar como cambiar java swing focus

poner - requestfocus java



Cómo saber qué objeto tiene actualmente foco (7)

Tengo algunos TextField s en mi Frame . Quiero saber qué TextField tiene foco actualmente. ¿Cómo puedo encontrar esta información?


Cada JComponent tiene un método hasFocus que puede usar para verificar si tiene foco. Sin embargo, esto ha cambiado, y ahora debe usar isFocusOwner.

Por lo tanto, ejecute todos los campos de texto en su marco, y verifique cada uno de ellos si se trata de FocusOwner llamando a ese método.

También puede obtener el propietario del foco a través del marco.



This tutorial debe ser bastante útil para comprender el enfoque.


JFrame.getFocusOwner() (heredado de Window.getFocusOwner() ) debe devolver una referencia al componente con foco. getMostRecentFocusOwner() también podría ser de interés.


KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner() ;
no funcionará a través de los hilos. Entonces, si su aplicación invoca un nuevo hilo y ese hilo tiene su propio marco / ventana, etc., entonces no podrá obtener el propietario del foco de ese hilo. En su lugar use: KeyboardFocusManager.getCurrentKeyboardFocusManager().getGlobalFocusOwner();


getFocusOwner () devolverá el componente secundario que está actualmente enfocado.

Pero debes verificar si es un JTextField. Otros componentes, como los botones, pueden centrarse si también existen en tu marco.


KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner()