gpt4 book ai didi

JavaFX 自动完成组合框下拉大小

转载 作者:搜寻专家 更新时间:2023-11-01 02:04:01 30 4
gpt4 key购买 nike

我必须根据用户输入创建一个自动填充 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 选项)。现在删除所有字符。(通过退格键)
  • 现在已填充的列表通过滚动条缩小到一个条目大小。
  • 再次单击组合框下拉菜单以获取完整尺寸列表。

如何根据内容调整列表大小?

最佳答案

不完全是“根据内容的列表大小”(顺便说一句,如果项目的数量太大而无法显示在屏幕上,这将很糟糕),但您可以指定最小高度使用 CSS 在弹出窗口中显示的 ListView

这确保弹出窗口的大小永远不会变得太小。即使项目数量很少,这也会在 ListView 的底部留下一些“空白空间”:

.combo-box .combo-box-popup > .list-view {
-fx-min-height: 200;
}

关于JavaFX 自动完成组合框下拉大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38871580/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com