JTextPane.setComponentPopupMenu 메서드를 통해 JTextPane에 할당 된 팝업 메뉴가있는 JFrame에 JTextPane이 있습니다.Jtextpane 클릭하여 의도 한대로 팝업 메뉴 효과를 생성하지 않습니다.
JTextPane에 "Word와 유사한"팝업 동작을 제공하려고합니다. 즉, 현재 텍스트 선택 영역을 바르게 클릭하면, 텍스트 선택 (예 : 잘라 내기, 복사 또는 굵게)에 영향을주는 메뉴 옵션이 비활성화 된 상태에서 마우스 오른쪽 버튼을 클릭 한 위치로 위치가 바뀝니다. 현재 텍스트 선택 내에서 마우스 오른쪽 버튼을 클릭하면 텍스트 선택이 활성화되고 텍스트 선택이 지속되며 캐럿이 이동하지 않는 옵션이있는 팝업이 나타납니다.
문제는 내가 찾을 수없는 것입니다 내가 선택 변경을 처리하는 코드를 넣을 수 . 나는 시도했다 :
- 팝업이 표시되기 전에 트리거되는 "PopupMenuWillBecomeVisible"이벤트 사용. 이 메서드에 전달 된 이벤트에는 마우스 이벤트 정보가 포함되어 있지 않으므로 viewtomodel을 사용하여 선택 항목을 수정하는 방법을 찾을 방법이 없습니다. 나는 MouseInfo를 사용할 수 있지만, 잘 모르겠다.
- JTextPane 또는 JFrame에서 MousePressed/MouseReleased 이벤트 사용. 팝업 메뉴가 트리거 될 때 이러한 이벤트가 호출되지 않습니다. 사실, 나는 아직도 내 팝업 메뉴의 부모 구성 요소가 무엇인지 결정할 수 없습니다. (윈도우에서 "MouseReleased"는 다른 시스템에서 "MousePressed"가 트리거 인 동안 팝업 트리거입니다. 나는 둘 다 시도했지만 둘 다 시도하지 않았습니다.)
그래서, 문제는 팝업 메뉴가 표시되기 전에 호출 될 코드를 넣을 위치를 찾지 못했지만 팝업 메뉴를 트리거 한 mouseEvent를 인식하고 있다는 것입니다. 여기에 뭔가 빠져 있어야합니다.