Javafx 关闭事件Cusom菜单项
首先我想为我的英语不好道歉。我的问题是,我在JavaFX中实现了一个扩展CustomMenuItem的新类 我想得到一个菜单,可以处理任何类似CustomMenuItem的东西,但是当点击它时,隐藏事件不应该出现。所以我想把菜单放在最前面 此时OnActionEvent(单击)启动我想要的事件,但完整菜单隐藏。我对JavaFX没有真正的确认,所以我不知道如何从完整菜单中捕获close/hide事件 有解决办法吗Javafx 关闭事件Cusom菜单项,javafx,custom-controls,menuitem,Javafx,Custom Controls,Menuitem,首先我想为我的英语不好道歉。我的问题是,我在JavaFX中实现了一个扩展CustomMenuItem的新类 我想得到一个菜单,可以处理任何类似CustomMenuItem的东西,但是当点击它时,隐藏事件不应该出现。所以我想把菜单放在最前面 此时OnActionEvent(单击)启动我想要的事件,但完整菜单隐藏。我对JavaFX没有真正的确认,所以我不知道如何从完整菜单中捕获close/hide事件 有解决办法吗 谢谢你的帮助。你的问题很难理解,但我想你要找的是电话 setHideOnClick(
谢谢你的帮助。你的问题很难理解,但我想你要找的是电话
setHideOnClick(false);
在CustomMenuItem
subclass'构造函数中,如下例所示:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.CustomMenuItem;
import javafx.scene.control.Label;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuBar;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
public class NonHidingMenu extends Application {
@Override
public void start(Stage primaryStage) {
Menu menu = new Menu("File");
menu.getItems().addAll(new NonHidingMenuItem("New"));
menu.getItems().addAll(new NonHidingMenuItem("Open"));
MenuBar menuBar = new MenuBar();
menuBar.getMenus().add(menu);
BorderPane root = new BorderPane(null, menuBar, null, null, null);
primaryStage.setScene(new Scene(root, 400, 400));
primaryStage.show();
}
public static class NonHidingMenuItem extends CustomMenuItem {
public NonHidingMenuItem(String text) {
setContent(new Label(text));
setHideOnClick(false);
setOnAction(event -> System.out.println("Selected "+text));
}
}
public static void main(String[] args) {
launch(args);
}
}
你好,詹姆斯,这不是我的问题。如果我在菜单项上单击,事件操作将启动,完整菜单将隐藏!我在点击菜单后看不到它,但我想得到一个这样的解决方案:首先我想点击菜单项,然后启动事件,菜单将不会隐藏并停留在前一轮。你能帮帮我吗?那个方法调用就是这么做的。我用一个你可以运行的例子更新了答案。这个解决方案没有这个效果。如果我单击菜单项,它们将隐藏。您是否可以修复它?当我单击它们时,消息会打印到控制台,但菜单仍显示。您使用的是哪个JDK版本?您好,我使用JavaSE 1.7->代码中的Lambda函数也不起作用。