두 가지 옵션이있는 ContextMenu가 있는데 두 번째 옵션 (코드의 item2)을 마우스 오른쪽 버튼으로 누르면 텍스트를 인쇄하여 실제로 활성화했음을 알 수 있습니다. 지금까지 두 번째 mousebutton을 클릭해도 아무 일도 일어나지 않습니다.MenuItem이 응답하지 않는 이유는 무엇입니까?
나는 사건 처리사들과 함께 많은 경험을하지 못해서, 내가 노략질 한 실수를 저질렀다면 사과드립니다.
private void maakContextMenu() {
menu = new ContextMenu();
MenuItem item = new MenuItem("Kleur Assen");
MenuItem item2 = new MenuItem("tweede optie");
final LissajousCanvas canvas = this;
item.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
new KiesKleur(canvas).show();
}
});
item2.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>(){
@Override
public void handle(MouseEvent t) {
System.out.println("in the loop");
if(t.getSource()==MouseButton.SECONDARY){
System.out.println("in too deep");
}
new KiesKleur(canvas).show();
}
});
menu.getItems().addAll(item, item2);
}
버그 것 같다. 비슷한 문제에 대해 JavaFX 문제 추적기를 검색하면 해결 방법을 얻을 수 있습니다. 관련이 없지만 코드의 또 다른 문제점은 t.getSource()입니다. t.getButton()이어야합니다. –