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