首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JavaFX:检查文本属性是否为空(不仅仅是空)

JavaFX:检查文本属性是否为空(不仅仅是空)
EN

Stack Overflow用户
提问于 2016-03-12 03:24:36
回答 1查看 3.9K关注 0票数 3

我希望根据文本字段是否包含任何内容来启用或禁用按钮,并且我希望使用属性绑定来实现这一点。

因此,我首先在文本字段的text属性上使用isEmpty()方法为按钮的disabled属性创建了一个布尔绑定:

代码语言:javascript
复制
startSearchButton.disableProperty().bind(searchField.textProperty().isEmpty());

虽然绑定可以正常工作,但我对“文本字段包含任何内容”的定义与isEmpty()方法的定义不同,即只检查文本的长度是否大于0。然而,我感兴趣的是是否存在“真正的”文本,即文本字段是否为空(不仅不是空的,而且实际上不仅仅是空白)。

不幸的是,没有isBlank()方法,而且我在绑定实用类中也找不到任何合适的东西。现在,我看到您可以通过Bindings.createBooleanProperty方法实现任何自定义布尔属性,但是我还不熟悉定义自定义绑定的概念。对于我的情况,我应该如何实现这样的布尔属性呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-12 03:27:24

您可以使用(在许多方法中) Bindings.createBooleanBinding(...)创建自定义绑定。第一个参数是计算绑定的值的函数(您可以使用trim()修剪文本中的空格,然后检查结果是否为空);其余的参数是触发绑定重新计算的可观察参数列表。当文本字段中的文本发生更改时,您希望重新计算绑定,因此只需指定text属性:

代码语言:javascript
复制
startSearchButton.disableProperty().bind(Bindings.createBooleanBinding(() -> 
    searchField.getText().trim().isEmpty(),
    searchField.textProperty());
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35948307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档