1
有一個ContextMenu有兩個選項,當第二個選項(代碼中的item2)用鼠標右鍵按下時,我希望它打印出一些文本,所以我知道我確實激活了它。直到現在,當我點擊第二個鼠標按鈕時沒有任何反應。爲什麼MenuItem沒有響應?
我還沒有太多的經驗與事件處理程序,所以我道歉,如果我犯了一個noobish錯誤。
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()。 –