在另一个右键单击中,上下文菜单不会消失

时间:2014-08-06 18:19:43

标签: java user-interface javafx java-8

我已经设置ContextMenu来处理正确的点击次数,但是当我再次右击时,原始版本不会消失。

代码:

this.table.addEventHandler(MouseEvent.MOUSE_CLICKED, (event) -> {
        if (event.getButton() == MouseButton.SECONDARY) {
            MenuItem delete = new MenuItem("Delete");
            delete.setOnAction((actionEvent) -> {
                Action action = Dialogs.create().nativeTitleBar().title("Are you sure?").masthead("This member will be removed from the table")
                        .message("Are you sure that you want to remove "
                                + this.table.getSelectionModel().getSelectedItem().memberProperty.get().get()
                                + " from the table?").showConfirm();
                if (action == Dialog.Actions.YES || action == Dialog.Actions.OK) {
                    this.table.getItems().remove(this.table.getSelectionModel().getSelectedItem());
                }
            });
            ContextMenu menu = new ContextMenu(deleteMember);
            menu.show(this.table, event.getScreenX(), event.getScreenY());
        }
    });

1 个答案:

答案 0 :(得分:0)

好吧,它看起来像分配了上下文菜单的那一行就是问题所在。我做了menu.show(this.table.getScene().getWindow(), event.getScreenX(), event.getScreenY());,这使一切顺利。我猜测造成问题的原因是所有分配给所有者变量的工作水平较低。

相关问题