【发布时间】:2016-12-16 17:31:06
【问题描述】:
我必须根据用户输入创建一个自动填充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 取自 answer。
使用此自动完成功能可以正常工作。我遇到了列表大小的问题,
运行应用程序并单击ComboBox 下拉菜单以查看弹出窗口大小。
- 在组合框中输入 ANDRE(将在弹出窗口中显示 ANDRE 选项)。现在删除所有字符。(按退格键)
- 现在填充的列表通过滚动条缩小到一个条目大小。
- 再次单击下拉组合框以获取完整大小的列表。
如何根据内容制作列表大小?
【问题讨论】:
-
@Reimeus 如何在这种情况下使用 sizeToScene() 方法。