当前位置: 首页 > 知识库问答 >
问题:

使用fxml在Javafx的mainScene中添加事件监听器

松钊
2023-03-14
<Text fx:id="barcodeText"/>
   @FXML
   Text barcodeText;

   public void start(Stage primaryStage) throws IOException {
        this.primaryStage=primaryStage;
        Scene mainScene =new Scene(root);
        primaryStage.setScene(mainScene);
        primaryStage.setResizable(false);
        primaryStage.show();
        Parent root = FXMLLoader.load(getClass().getResource("/view/foo.fxml"));
        mainScene.addEventHandler(KeyEvent.KEY_PRESSED,new KeyboardEventHandler(){
                @Override
                public void handle(KeyEvent event) {
                   barcodeText.setText("foo");
                }
        });

我做错什么了吗?

我所看到的例子是使用这种方法而不使用fxml,我必须使用注释来定义处理程序吗?在FXML中,我应该把场景的“onAction”放在哪里?

共有1个答案

严狐若
2023-03-14

(旁白:看起来您试图将同一个类用于控制器和应用程序。不要这样做。)

在controller类中定义用于设置条形码文本的方法

public void setBarcodeText(String barcode) {
    barcodeText.setText(barcode);
}

然后从处理程序调用该方法:

FXMLLoader loader = new FXMLLoader(getClass().getResource("/view/foo.fxml"));
Parent root = loader.load();

MyControllerClass controller = loader.getController();

Scene mainScene = new Scene(root);
mainScene.addEventHandler(KeyEvent.KEY_PRESSED, new KeyboardEventHandler(){
        @Override
        public void handle(KeyEvent event) {
            controller.setBarcodeText("foo");
        }
});
 类似资料:
  • 本文向大家介绍Java添加事件监听器,包括了Java添加事件监听器的使用技巧和注意事项,需要的朋友参考一下 示例 Preferences对象发出的事件有两种:PreferenceChangeEvent和NodeChangeEvent。 PreferenceChangeEvent 每当节点的键值对之一更改时,对象PreferenceChangeEvent就会发出A。可以使用来监听:Propertie

  • 本文向大家介绍JavaScript使用addEventListener添加事件监听用法实例,包括了JavaScript使用addEventListener添加事件监听用法实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript使用addEventListener添加事件监听用法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的javascript程序设计有所帮

  • 问题内容: 将html标记中的标准重构为侦听器,我的代码面临问题: 当单击元素时,假定单击的是循环中的最后一个索引,例如Lookslike,仅填充了此循环中的最后一个元素,循环初始化看起来正确,为什么会这样呢? 问题答案: 您需要将事件侦听器的分配包装在闭包中,例如:

  • 我在JavaFX中制作了一个版本的风险。现在,为了显示游戏数据,我正在使用标签网格来显示有关每个区域的信息。我现在想在标签上有鼠标点击侦听器,这样我就可以通过点击它们来测试游戏功能,直到我制作了完整的游戏板。除非我尝试在FXML文档中添加侦听器,否则我会收到错误。现在,我正在控制器中声明标签,将它们添加到集合中,以便我可以使用循环绑定每个标签的文本属性,然后将每个标签添加到网格中。然后在FXML中

  • Blade 中提供一个方法帮助开发者可以自定义的监听应用程序运行中的一些生命周期。比如 Session 的创建与销毁,应用启动结束后等。 支持的事件类型有如下: public enum EventType { SERVER_STARTING, // 服务准备启动 SERVER_STARTED, // 服务启动成功 SERVER_STOPPING, //

  • Nutz.Ioc 容器有三种事件: 对象被创建(create事件) 对象被从容器中取出(fetch事件) 对象被销毁(depose事件) 在这三种时刻,你如果想做一些特殊的操作,比如,当一个数据源被销毁时,你希望能够关闭所有的连接, 声明一下,你想监听什么事件,以及怎么监听。 注: 如果你的对象是 "singleton: false",那么容器创建了对象后就会立即忘记它的存在。因为鬼才知道 你打算