You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在FXML中实现输入验证并禁用登录按钮

在FXML中直接实现登录按钮的禁用绑定逻辑

完全可以直接在FXML文件里实现这个验证逻辑,不用再依赖控制器里的disableProperty().bind()代码。

你只需要修改按钮的代码,给它加上disable属性的绑定表达式,和你原来控制器里的逻辑完全对应:

<TextField fx:id="usernameField" prefHeight="34.0" prefWidth="220.0" promptText="Username"/>
<PasswordField fx:id="passwordField" prefHeight="34.0" prefWidth="220.0" promptText="Password"/>
<Button fx:id="signinButton" mnemonicParsing="false" onAction="#onSignin" prefWidth="220.0" text="Sign in"
        disable="${usernameField.text.isEmpty or usernameField.text.length.lessThan(5) or passwordField.text.isEmpty or passwordField.text.length.lessThan(4)}"/>

表达式各部分含义:

  • usernameField.text.isEmpty:判断用户名输入框是否为空
  • usernameField.text.length.lessThan(5):判断用户名长度是否小于5
  • passwordField.text.isEmpty:判断密码输入框是否为空
  • passwordField.text.length.lessThan(4):判断密码长度是否小于4
  • 用or连接所有条件,只要任一条件满足,按钮就会保持禁用状态

修改完成后,你可以删除控制器configure()方法中关于按钮禁用绑定的代码,逻辑完全由FXML自动处理。

内容的提问来源于stack exchange,提问作者amin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 04:55:45