我需要创建一个基于用户输入的自动填充ComboBox
。
我的代码如下:
public class JavaFXApplication1 extends Application {
@Override
public void start(Stage primaryStage) {
ComboBox<String> combo = new ComboBox<>();
ObservableList<String> list = FXCollections.observableArrayList();
list.add("A");
list.add("AND");
list.add("ANDR");
list.add("ANDRE");
list.add("B");
list.add("BP");
list.add("BPO");
combo.setItems(list);
new AutoCompleteComboBoxListener(combo);
StackPane root = new StackPane();
root.getChildren().add(combo);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
AutoCompleteComboBoxListener
是从这个 答案 中获取的。
使用此自动完成功能正常。我在列表大小方面遇到了问题,
运行应用程序并单击 ComboBox
下拉以查看弹出窗口大小。
- 在组合框中键入 ANDRE(将在弹出窗口中显示 ANDRE 选项)。现在删除所有字符。(通过退格键)
- 现在填充的列表缩小为一个条目大小,带有滚动条。
- 再次单击下拉列表以获得完整大小列表。
如何根据内容调整列表大小?