我目前正在使用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中执行此操作?
答案 0 :(得分:1)
其中一种方法可以是观察文本长度:
IntegerBinding ib = Bindings.length(textField.textProperty());
ib.addListener((ObservableValue<? extends Number> observable, Number oldValue, Number newValue) -> {
if(newValue.intValue() >= 3) {
// trigger auto complete
}
});