如何使用ID在JavaFx中获取元素?

拉基姆

我是FXML的新手,我正在尝试使用来为所有按钮单击创建处理程序switch但是,为此,我需要使用和id来获取元素。我已经尝试了以下操作,但是由于某种原因(也许是因为我在控制器类中而不是在主类中这样做),我遇到了堆栈溢出异常。

public class ViewController {
    public Button exitBtn;

    public ViewController() throws IOException {
         Parent root = FXMLLoader.load(getClass().getResource("mainWindow.fxml"));
         Scene scene = new Scene(root);

         exitBtn = (Button) scene.lookup("#exitBtn");
    }
}

那么,如何使用其ID作为参考获取元素(例如按钮)呢?

该按钮的fxml块为:

<Button fx:id="exitBtn" contentDisplay="CENTER" mnemonicParsing="false"
        onAction="#handleButtonClick" text="Exit" HBox.hgrow="NEVER" HBox.margin="$x1"/>
詹姆斯·D

使用控制器类,这样就无需使用查找。FXMLLoader将注入的字段到控制器为您服务。确保在initialize()调用方法(如果有)之前进行注入

public class ViewController {

    @FXML
    private Button exitBtn ;

    @FXML
    private Button openBtn ;

    public void initialize() {
        // initialization here, if needed...
    }

    @FXML
    private void handleButtonClick(ActionEvent event) {
        // I really don't recommend using a single handler like this,
        // but it will work
        if (event.getSource() == exitBtn) {
            exitBtn.getScene().getWindow().hide();
        } else if (event.getSource() == openBtn) {
            // do open action...
        }
        // etc...
    }
}

在FXML的根元素中指定控制器类:

<!-- imports etc... -->
<SomePane xmlns="..." fx:controller="my.package.ViewController">
<!-- ... -->
    <Button fx:id="exitBtn" contentDisplay="CENTER" mnemonicParsing="false" onAction="#handleButtonClick" text="Exit" HBox.hgrow="NEVER" HBox.margin="$x1" />
    <Button fx:id="openBtn" contentDisplay="CENTER" mnemonicParsing="false" onAction="#handleButtonClick" text="Open" HBox.hgrow="NEVER" HBox.margin="$x1" />
</SomePane>

最后,从控制器类以外的其他类(可能但不一定是您的Application类)中加载FXML

Parent root = FXMLLoader.load(getClass().getResource("path/to/fxml"));
Scene scene = new Scene(root);   
// etc...     

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用jQuery获取元素ID中包含的文本

来自分类Dev

如何获取Angular中单击元素的ID?

来自分类Dev

如何从非类或ID的路径中获取元素

来自分类Dev

如何在jQuery中获取元素的ID?

来自分类Dev

如何使用jquery从元素属性中的“name[ID][OTHER]”中获取“ID”值?

来自分类Dev

如何使用JQuery获取DOM元素的ID

来自分类Dev

如何使用JQuery获取DOM元素的ID

来自分类Dev

如何使用PHP获取HTML元素的ID?

来自分类Dev

如何使用jQuery获取HTML元素ID

来自分类Dev

如何使用“onClick”函数获取元素的 id

来自分类Dev

如何获取元素的ID

来自分类Dev

如何在select元素中获取span元素的id?

来自分类Dev

如何使用jQuery中的prepend()方法获取添加到html <ul>元素中的html <li>元素的id值?

来自分类Dev

如何使用jQuery中的prepend()方法获取添加到html <ul>元素中的html <li>元素的id值?

来自分类Dev

如何使用jQuery从HTML表单获取数组中的所有id元素值

来自分类Dev

如何使用LINQ在属性中获取元素

来自分类Dev

如何从div元素的ID中获取Leaflet地图的地图对象?

来自分类Dev

Javascript Redux-如何通过ID从存储中获取元素

来自分类Dev

如何在JavaScript中动态获取元素ID

来自分类Dev

如何在ASP.NET中通过ID获取元素?

来自分类Dev

如何在Google表单中获取元素ID

来自分类Dev

如何从map-reduce集合中获取_id元素

来自分类Dev

如何在JavaScript中动态获取元素ID

来自分类Dev

如何从单击的TD元素的TR中获取ID的值

来自分类Dev

如何在以下函数中获取父元素id

来自分类Dev

如何使用asp.net通过名称获取元素的“ ID”

来自分类Dev

如何使用mxGraph在SVG元素上获取ID

来自分类Dev

如何使用QWebEngineView通过ID获取页面元素

来自分类Dev

如何通过使用symfony单击获取元素ID

Related 相关文章

  1. 1

    如何使用jQuery获取元素ID中包含的文本

  2. 2

    如何获取Angular中单击元素的ID?

  3. 3

    如何从非类或ID的路径中获取元素

  4. 4

    如何在jQuery中获取元素的ID?

  5. 5

    如何使用jquery从元素属性中的“name[ID][OTHER]”中获取“ID”值?

  6. 6

    如何使用JQuery获取DOM元素的ID

  7. 7

    如何使用JQuery获取DOM元素的ID

  8. 8

    如何使用PHP获取HTML元素的ID?

  9. 9

    如何使用jQuery获取HTML元素ID

  10. 10

    如何使用“onClick”函数获取元素的 id

  11. 11

    如何获取元素的ID

  12. 12

    如何在select元素中获取span元素的id?

  13. 13

    如何使用jQuery中的prepend()方法获取添加到html <ul>元素中的html <li>元素的id值?

  14. 14

    如何使用jQuery中的prepend()方法获取添加到html <ul>元素中的html <li>元素的id值?

  15. 15

    如何使用jQuery从HTML表单获取数组中的所有id元素值

  16. 16

    如何使用LINQ在属性中获取元素

  17. 17

    如何从div元素的ID中获取Leaflet地图的地图对象?

  18. 18

    Javascript Redux-如何通过ID从存储中获取元素

  19. 19

    如何在JavaScript中动态获取元素ID

  20. 20

    如何在ASP.NET中通过ID获取元素?

  21. 21

    如何在Google表单中获取元素ID

  22. 22

    如何从map-reduce集合中获取_id元素

  23. 23

    如何在JavaScript中动态获取元素ID

  24. 24

    如何从单击的TD元素的TR中获取ID的值

  25. 25

    如何在以下函数中获取父元素id

  26. 26

    如何使用asp.net通过名称获取元素的“ ID”

  27. 27

    如何使用mxGraph在SVG元素上获取ID

  28. 28

    如何使用QWebEngineView通过ID获取页面元素

  29. 29

    如何通过使用symfony单击获取元素ID

热门标签

归档