이상한 기존 코드로 작업하고 있습니다. 그들은 JPanel을 구현하는 커스텀 객체를 가지고있다. 이 JPanel
개체는 주 응용 프로그램 내의 보조 팝업 화면입니다. 내가 가지고있는 문제는 보조 팝업 화면이 닫힐 때를 감지하는 것입니다.JPanel에서 닫기를 청취하는 방법
클래스에 WindowListener
을 구현하려고했지만 추가하려고하면이 개체와 연결된 JFrame
이 없습니다. 나는 이것이 사용자 정의 객체를 사용하고 있으며 임베디드 팝업 화면이기 때문에 이것이라고 가정합니다. NullPointerException
에 실패
JFrame parentFrame = (JFrame) SwingUtilities.getWindowAncestor(this);
을 :
내가 사용JFrame
를 검색하기 위해 노력했다. 이 페이지에서 오른쪽 코너 "x"닫기 버튼을 감지하는 것이 왜 그렇게 어려운지 잘 모릅니다! 나는 그들이
JPanel
안에 내장 된 테이블에 마우스와 키 리스너를 추가 할 수 있었다고 언급해야한다. 그러나 창문 외부의 청취자가 나를 괴롭 히고 있습니다.
(나와 함께하시기 바랍니다 곰이 내 첫 유래 포스트 내가 스윙 할 새로운입니다.)
감사를 이렇게 아주 많이!
이 기능은 getWindowAncestor()보다 훨씬 효과적입니다. JPanel 클래스에 어떻게 든 창 컨테이너가 없기 때문입니다. 그것은 기괴한 구조입니다. 나는 부모에 재귀 적으로 볼 때, 내가 얻을 : 는 JPNLCustomClass는 JPanel의 부모입니다 확장 ->하는 JViewport 부모는 -> JScrollPane의 부모는 -> JSplitPane의 부모가은 -> JPNLMainContainerCustomClass 연장하는 AbstractMainContainerCustomClass을 확장하는이 -> 널 이가 될 수 있을까요 이 비정상적인 구조로 인해 창 닫기를 감지하지 못할 수도 있습니다. 그래도 아무 것도 정말로 불가능합니다 :) 고마워요 !! – jspacek