javaFx 中的事件处理程序



我在 JavaFX 中有一个问题,如何为菜单(不是菜单栏或菜单项(设置一个事件处理程序,当我单击菜单时会出现一个弹出窗口。 我已经尝试过这个,但是当我单击菜单时没有任何反应:

settingsMenu.addEventHandler(MouseEvent.MOUSE_CLICKED,event -> {//To DO});

甚至下面的代码也不起作用:

settingMenu.setOnAction(event -> {//To Do});

这是一个黑客。 Menu有一个构造函数Menu(String text, Node graphic)。将String设置为 empty-string,将Node设置为 Label 。然后将MouseListener添加到Label

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuBar;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
/**
 *
 * @author Sedrick
 */
public class JavaFXApplication33 extends Application {
    @Override
    public void start(Stage primaryStage) {
        Label label = new Label("Help!");
        label.setOnMouseClicked(mouseEvent->{System.out.println("Hello World!");});
        Menu menu = new Menu("", label);
        MenuBar menuBar = new MenuBar();
        menuBar.getMenus().add(menu);

        StackPane root = new StackPane();
        root.getChildren().add(menuBar);
        Scene scene = new Scene(root, 300, 250);
        primaryStage.setTitle("Hello World!");
        primaryStage.setScene(scene);
        primaryStage.show();
    }
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        launch(args);
    }
}

相关内容

  • 没有找到相关文章