gpt4 book ai didi

Javafx 组合框在实时更改时不更新下拉大小?

转载 作者:行者123 更新时间:2023-12-04 11:36:16 26 4
gpt4 key购买 nike

我正在使用 Javafx v8.0.25-b18。

我遇到的问题是动态组合框的下拉列表的大小不会改变,所以如果我最初在下拉列表中有两个项目,那么下拉大小将适合两个项目,但如果我现在填充动态组合框三个项目然后我在里面得到一个小滚动条!?,如果我删除一个项目 - 我将在组合框中有一个空格!?

每次我将值放入其中时,我都想“重置”下拉大小,因此每次在运行时填充时它都会是正确的大小。

为了进一步澄清,我添加了三个图像:
1.第一个截图显示初始下拉大小为2

Initial dropdown size of 2

  • 第二个屏幕截图显示了相同的组合框,现在在运行时我添加了 2 个值,我希望它现在有一个大小为 4 的下拉列表,但下拉大小保持为 2 并且只添加了一个不需要的滚动条

  • enter image description here
  • 最后一个屏幕截图是当我删除项目并且只有一个项目保留在组合框中时,我希望看到 1 个项目的下拉列表,但不幸的是我看到了一个大小为 2 的下拉列表,因此一个空白区域而不是第二个项目

  • enter image description here

    我正在添加简单的代码来创建这个场景,我要感谢@Gikkman 帮助我走到这一步,代码实际上是他的!
    public class Test extends Application {

    private int index = 0;

    @Override
    public void start(Stage primaryStage) throws IOException {

    VBox vbox = new VBox();
    vbox.setSpacing(10);
    vbox.setAlignment(Pos.CENTER);

    final ComboBox<String> box = new ComboBox<>();
    box.setPrefWidth(200);
    box.setVisibleRowCount(10);

    Button add = new Button("Add");
    Button remove = new Button("Remove");

    add.setOnAction( new EventHandler<ActionEvent>() {
    @Override
    public void handle(ActionEvent event) {
    box.getItems().add("Item " + index++);
    box.getItems().add("Item " + index++);
    }
    });


    remove.setOnAction( new EventHandler<ActionEvent>() {
    @Override
    public void handle(ActionEvent event) {
    if( index > 0 )
    box.getItems().remove(--index);
    }
    });


    vbox.getChildren().addAll(add, remove, box);


    Scene scene = new Scene(vbox);

    primaryStage.setScene(scene);
    primaryStage.show();
    }

    public static void main(String[] args) {
    launch(args);
    }
    }

    最佳答案

    尝试这个:

    box.hide(); //before you set new visibleRowCount value
    box.setVisibleRowCount(rows); // set new visibleRowCount value
    box.show(); //after you set new visibleRowCount value

    它适用于可编辑的组合框,我认为它适用于您的情况。

    关于Javafx 组合框在实时更改时不更新下拉大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32198956/

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