Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将javaFX元素直接链接到Java代码_Java_Android_Javafx_Fxml - Fatal编程技术网

将javaFX元素直接链接到Java代码

将javaFX元素直接链接到Java代码,java,android,javafx,fxml,Java,Android,Javafx,Fxml,我一直在研究JavaFX,它非常有趣,但有一件事我没有看到,那就是如何像Android中一样将FXML元素(文本字段、按钮)直接链接到Java代码,有一个选项可以为每个项目设置Id,除了总是使用SceneBuilder或在FXML中手动操作之外,难道没有一种方法可以将两者链接在一起吗?我刚刚发现,在控制器类中,我可以将对象名(例如TextFieldname)设置为我给定的TextField的确切id,我想在对象创建代码顶部使用@FXML标记进行操作,例如 假设我有一个FXML文件,其中包含Tex

我一直在研究JavaFX,它非常有趣,但有一件事我没有看到,那就是如何像Android中一样将FXML元素(文本字段、按钮)直接链接到Java代码,有一个选项可以为每个项目设置Id,除了总是使用SceneBuilder或在FXML中手动操作之外,难道没有一种方法可以将两者链接在一起吗?

我刚刚发现,在控制器类中,我可以将对象名(例如
TextField
name)设置为我给定的
TextField
的确切id,我想在对象创建代码顶部使用
@FXML
标记进行操作,例如 假设我有一个FXML文件,其中包含
TextField
id=txt\u username

 <TextField layoutX="167.0" layoutY="194.0" promptText="userName">
     <font>
        <Font size="18.0" />

我刚刚弄明白,在控制器类中,我可以将对象名(例如
TextField
name)设置为我给定的
TextField
的确切id,我想在对象创建代码的顶部使用
@FXML
标记进行操作 假设我有一个FXML文件,其中包含
TextField
id=txt\u username

 <TextField layoutX="167.0" layoutY="194.0" promptText="userName">
     <font>
        <Font size="18.0" />

只需在控制器类中使用
FXML
注释,例如:

@FXML private Label fooLabel;
@FXML private TextField barTextField;

如果变量名称与FXML元素ID匹配。

只需在控制器类中使用
FXML
注释,例如:

@FXML private Label fooLabel;
@FXML private TextField barTextField;

如果变量名称与FXML元素ID匹配。

您需要在FXML中的元素上设置
fx:ID
属性(您可以手动或使用SceneBuilder执行)。请注意,您需要
fx:id
,而不仅仅是
id
(即CSS id)

然后,元素创建的对象将被注入控制器中与属性值同名的字段中。该字段应使用
@FXML
(推荐)进行注释,或为公共字段(强烈不推荐)

例如:

<Button fx:id="myButton" text="Click Me" onAction="#handleButtonClick"/>

您需要在FXML中的元素上设置
fx:id
属性(您可以手动或使用SceneBuilder进行设置)。请注意,您需要
fx:id
,而不仅仅是
id
(即CSS id)

然后,元素创建的对象将被注入控制器中与属性值同名的字段中。该字段应使用
@FXML
(推荐)进行注释,或为公共字段(强烈不推荐)

例如:

<Button fx:id="myButton" text="Click Me" onAction="#handleButtonClick"/>