getFocusOwner() 작업에 도움이 필요합니다. 나는 자바로 만든 스도쿠 게임을 가지고 있으며 화살표 키 탐색 기능을 프로그램에 추가하려고합니다. 나는 약간의 연구를했고 포커스 시스템을 사용하는 것이 최선의 방법이라는 것을 발견했다. (그렇지 않다면, 더 나은 방법을 제공하고 그것을 연구 할 수있다.)맞춤 클래스가있는 getFocusOwner
좋아요, 테스트 목적으로, 나는 SetTield (JTextField를 확장하는 커스텀 클래스)에 포커스를 맞추려고합니다. 커스텀 클래스는 커스텀 클래스가 아닙니다. 집중력이 집중되었습니다. 그리드 가운데 SetField에 requestFocusInWindow()를 호출하고 해당 구성 요소에 포커스가 설정되었습니다. 포커스가있는 구성 요소를 검색 할 때 문제가 발생합니다.
이 내가 getFocusOwner() 메서드를 테스트하지 않으려면 뭘하는지입니다 : 아무리에서 이것을 시도 어떤 구성 요소
sGrid[40].requestFocusInWindow();
try{
System.out.println(this.getFocusOwner().getClass().getSimpleName());
} catch(NullPointerException e){
e.printStackTrace();
}
을, 난 항상 널 포인터 예외를 얻을. 나는 JButtons, JLabels, 심지어 내 프로그램의 JPanels로 시도했다. 포커스는 구성 요소로 설정됩니다. 캐럿이 의도 된 SetField에서 깜박 거리는 것을 볼 수 있습니다. 내가 뭘 잘못하고 있니? 모든 도움을 미리 감사드립니다.
내가하고있는 일은 반환하는 구성 요소의 간단한 이름을 출력하여 getFocusOwner 메서드를 테스트하는 것뿐입니다. 어떤 구성 요소에 포커스가 있는지 알아야하므로 화살표 키를 누른 후에 포커스가 어디로 갈지 파악할 수 있습니다. JFormattedTextField를 살펴 보겠습니다. 어쨌든 내 현재의 솔루션이 너무 잘 작동하지 않습니다. – SkylineAddict