JTree에서 노드를 마우스 오른쪽 버튼으로 클릭 할 때 JPopupMenu를 표시하는 JTree가 있습니다. JTree에서 선택한 노드를 기반으로하는 JPopupMenu에서 특정 JMenuItems를 숨기거나 표시하거나 설정/해제하는 가장 좋은 방법은 무엇입니까?JTree의 선택에 따라 JPopupMenu의 JMenuItems 표시/숨기기
첫 번째 해결책은 TreeSelectionListener를 'value changed'이벤트에 대한 JTree에 추가하는 것입니다. 이벤트 처리 코드에서 TreeSelectionEvent의 getNewLeadSelectionPath() 메서드를 사용하여 가장 최근의 선택 항목의 경로를 가져오고 결과 TreePath 객체의 getLastPathComponent()를 사용하여 선택된 노드를 가져옵니다. 여기에서 내 JPopupMenu 객체에 액세스하고 특정 JMenuItems를 숨기거나 표시하는 데 필요한 수정 작업을 수행하는 일련의 IF 문이 있습니다.
그러나 이것에 대해 뭔가가 느껴지므로 더 나은 접근 방법이 있는지 물어볼 것입니다.