javafx combobox 关键字检索
时间: 2023-12-04 14:04:39 浏览: 153
JavaFX ComboBox是一个下拉列表框,它允许用户从预定义的选项中进行选择。关键字检索是指在ComboBox中输入关键字,然后根据关键字过滤选项,只显示与关键字匹配的选项。下面是一个简单的JavaFX ComboBox关键字检索的例子:
```java
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.control.ComboBox;
import javafx.scene.control.TextField;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class ComboBoxDemo extends Application {
private final ObservableList<String> data = FXCollections.observableArrayList(
"Apple", "Banana", "Cherry", "Date", "Grape", "Kiwi", "Lemon", "Mango", "Pear");
@Override
public void start(Stage stage) {
ComboBox<String> comboBox = new ComboBox<>(data);
TextField textField = new TextField();
textField.setPromptText("Search");
// 根据关键字过滤选项
textField.textProperty().addListener((observable, oldValue, newValue) -> {
if (newValue == null || newValue.isEmpty()) {
comboBox.setItems(data);
} else {
ObservableList<String> filteredList = FXCollections.observableArrayList();
for (String item : data) {
if (item.toLowerCase().contains(newValue.toLowerCase())) {
filteredList.add(item);
}
}
comboBox.setItems(filteredList);
}
});
VBox root = new VBox(comboBox, textField);
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
```
在这个例子中,我们创建了一个ComboBox和一个TextField。当用户在TextField中输入关键字时,我们根据关键字过滤选项,并将过滤后的选项设置为ComboBox的选项。这样,用户只能看到与关键字匹配的选项。
阅读全文