Java / JavaFX8:当TextField中的输入具有特定长度时执行操作

巴绍格扎德

我当前正在使用ControlsFX的AutoComplete TextField功能在用户键入内容时显示建议。建议量很大,因此该列表不适合该页面。

我想将字符串列表的长度设置为最大,但这在ControlsFX中尚不可能(正如我可以得出的结论那样)。因此,我正在考虑一种解决方法,其中仅在用户键入3个或更多字符的字符串时显示列表。

现在,我已将此动作设置为在单击TextField时执行(其中searchCustomer是我的TextField):

@FXML
private void searchCustomer() {
    //Get all customers from shop
    String[][] customersOfShop = octocash.Main.databaseConnection.getData("some query", 
                    Arrays.asList("some columname"));

    //Convert 2D array to 1D array
    int noOfRows = customersOfShop.length;
    String[] customersForList = new String[noOfRows];
    for(int k=0; k<noOfRows; k++) {
        customersForList[k] = customersOfShop[k][0];
    }
    //Set values to AutoComplete TextField
    TextFields.bindAutoCompletion(searchCustomer, customersForList);
}

如何在java / javaFX8中做到这一点?

乌鲁克·比(Uluk Biy)

一种方法是观察文本长度:

IntegerBinding ib = Bindings.length(textField.textProperty());

ib.addListener((ObservableValue<? extends Number> observable, Number oldValue, Number newValue) -> {
    if(newValue.intValue() >= 3) {
        // trigger auto complete
    }
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Java中创建特定长度的BitSet

如何创建的int []具有固定长度和特定数量的与Java流?

Java - 如何将文本文件中具有特定长度的所有单词放入列表中

具有给定长度的Java随机数

在Java 8的操作流中执行操作

在JavaFX8中隐藏TextField的输入插入符号

如何处理javaFX8中的多个Textfield输入?

Java-创建一个具有指定长度并用特定字符填充的新String实例。最佳解决方案?

Java 8流使用具有布尔字段的元素来执行某些操作

在Java中查找特定长度/格式的子字符串

替换Java字符串中的特定长度的子字符串

合并Java 8中具有不同类型和长度的多个流

Intellij 以特定长度包装 .java 文件文本,仅供我使用。没有 '\n'、'\r' 等保存到文件中。像记事本一样自动换行

为什么对象不需要时Java中的数组需要具有预定义的长度?

如何强制将数组设置为特定长度-Java

在Java中具有直接用户输入

Python中的列表:具有特定长度的单词总数

在Java 8 Stream上执行操作时如何保留状态?

执行流操作Java 8时更新集合

Java Regex指定长度

Java 8 Stream-对Collection中具有相同ID的对象的操作

Java中的定长StringBuffer

如何在Java-8中执行多个链式操作?

终端流操作,将映射作为Java 8中的输入

Java 8:在Stream上执行reduce操作

Java中具有空限制的数组操作

Java中数组的特定输入

Java 8中具有CompletableFutures的Tomcat 8

从具有特定长度并以特定字符开头的目录中获取文件