Javafx - 如何访问 FXML "objects"

标签 java javafx

我的 fxml 文件中声明了一些 JavaFX 组件。

The Frame

以及如何在按下按钮时获取字段(用户名、密码)的值? (执行登录)。

  Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
  stage.setTitle("Login");
  stage.setScene(new Scene(root,400,300));
  stage.show();

或者这是完全错误的方法吗?

我的问题:

  1. 在 fxml 文件中声明所有字段是个好主意吗?
  2. 如何让对象访问值?
  3. 如果方法完全错误,怎么办? (我想使用 scenebuilder)

编辑: https://hastebin.com/qexipogoma.xml <- 我的 FXML 文件和我的 Controller

最佳答案

Scene scene = stage.getScene();
Button btn = (Button) scene.lookup("#myBtnID");
TextField txt = (TextField ) scene.lookup("#myTxtID");

您正在寻找:

txt.getText();

btn.setOnAction( lambda here );

文档:

Button

TextField

编辑: 以这种方式声明 id

<TextField fx:id="myTxtID" ...  />

关于Javafx - 如何访问 FXML "objects",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45864503/

相关文章:

java - 如何在Java中创建动态数组?

java - 如何使用其中包含 actionPerformed 的 IF 语句从另一个类检查一个类中的 JToggleButton 状态?

javafx - 使用 setRowFactory 设置行样式不适用于可见行 (JavaFX 11)

java - 如何重用 JavaFX GUI?我可以动态更改 Controller 吗?

java - 无法使用 Eclipse OpenJ9+181 构建 OpenJFX

resize - JavaFX TreeView TreeColumn自动调整大小以适合内容

java - 复合主键表未填充到相关实体中

java - 尽管已设置标志 - 从 Activity 上下文外部调用 startActivity() 需要 FLAG_ACTIVITY_NEW_TASK 标志

java - 外行术语中的信任库与 keystore

java - E(fx)clipce 与 Inno Setup 错误的 jre 文件夹名称