1
창이나 이미지 뷰에서 마우스 오른쪽 버튼을 클릭 할 때 만든 컨텍스트 메뉴를 표시하려고합니다 ((상황에 맞는 메뉴에서 요청 됨)). 문제는 레이블과 버튼과 달리 setContextMenue 메소드가없는 것입니다. 컨텍스트 메뉴를 컨텍스트 메뉴를 수락하지 않는 노드에 어떻게 연관시킬 수 있습니까?javaFX에서 창이나 이미지 뷰를 마우스 오른쪽 버튼으로 클릭 할 때 컨텍스트 메뉴를 표시하는 방법
@FXML
Button button1, button2;
@FXML
Pane mainPane;
@FXML
ImageView image;
private void initContextMenu() {
final ContextMenu contextMenu = new ContextMenu();
final MenuItem item1 = new MenuItem("open a file");
final MenuItem item2 = new MenuItem("quit");
contextMenu.getItems().addAll(item1, item2);
// not possible
image.setContextMenu(contextMenu);
// possible
button1.setContextMenu(contextMenu)
할 수 -.> contextMenu.show (imgWidnow.getScene()하여 GetWindow()와 제대로 기능,하지만 지금은 메뉴의 위치가 중앙에 고정 .. 내가 실제로 이런 식으로 해결 창 –
은 감사하지만 imgWidnow.setOnContextMenuRequested (이벤트 -> { contextMenu.setY (event.getScreenY()); contextMenu.setX (event.getScreenX()); contextMenu.show (imgWidnow.getScene(). getWindow()); }); –
@RafatRefai 이전에는 그 행동을 보지 못했습니다. 'show (Node, double, double) '메서드는 항상 저에게 효과적입니다. 어떤 OS/JDK 버전을 사용하고 있습니까? (포커스를 잃어 버렸을 때를 닫으려면'contextMenu.setAutoHide (true);'를 사용하십시오.) –