Мне нужна помощь в работе getFocusOwner ().У меня есть игра Судоку, которую я сделал на Java, и я хочу добавить в программу навигацию по клавишам со стрелками.Я провел некоторое исследование и обнаружил, что использование системы фокусировки было бы лучшим способом (если это не так, пожалуйста, дайте мне лучший способ, и я могу исследовать это).
Хорошо, так что для целей тестирования япытаясь установить фокус на SetField, пользовательский класс, расширяющий JTextField (Custom, потому что я хотел отключить любые входные данные, которые не были числами).Это было установлено для фокусируемости.Я вызвал requestFocusInWindow () для SetField в середине сетки, и фокус был установлен на этот компонент.Проблема возникает, когда я пытаюсь получить компонент, имеющий фокус.
Это то, что я делаю, чтобы проверить метод getFocusOwner ():
sGrid[40].requestFocusInWindow();
try{
System.out.println(this.getFocusOwner().getClass().getSimpleName());
} catch(NullPointerException e){
e.printStackTrace();
}
Независимо от того, какой компонент я пробуюпри этом я всегда получаю исключение нулевого указателя.Я попробовал это с JButtons, JLabels и даже с JPanels в моей программе.Фокус установлен на компонент, хотя.Я вижу мигание каретки в заданном SetField.Я что-то не так делаю?Заранее спасибо за любую помощь.