【发布时间】:2018-04-17 03:59:40
【问题描述】:
我已经为 LoginForm 以及一个控制器和模型创建了一个 fxml 文件。我尝试将模型与 fxml 视图绑定,以便它可以显示在 TextField 上,并且我可以取回输入值,例如 Spring MVC。使用下面的代码,TextField 上显示的数据,但我无法更改 UI 上的值。
如何使用text 属性制作可编辑的TextField?或者我可以说如何将 TextField 与 java Model 绑定以将输入数据发送到控制器。
fxml 代码:
<fx:define>
<LoginModel fx:id="loginModel" />
</fx:define>
<Label text="Username" />
<TextField fx:id="username" GridPane.columnIndex="1" text="${loginModel.username}" editable="true" />
<Label text="Password" GridPane.rowIndex="1" />
<PasswordField fx:id="password" GridPane.columnIndex="1" GridPane.rowIndex="1" text="${loginModel.password}" />
Java 代码:
@Component
public class LoginController {
@FXML
private LoginModel loginModel;
@FXML
private TextField username;
@FXML
private PasswordField password;
public void login() {
System.out.println("loginModel = " + loginModel);
System.out.println("On login action");
}
}
在控制器中,我总是得到 null 作为用户名和密码。
【问题讨论】:
-
当
username.getText()或 null 时你得到 NPE? -
您必须使用参数将用户名和密码传递给 userService。像这样 userService.login(username,password).
-
我在动作控制器中得到空值。
标签: java javafx javafx-8 javafx-2