在JavaFX中更改窗口大小后ComboBox下拉宽度出现问题

时间:2019-07-11 02:49:38

标签: java javafx combobox

我正在开发一个Java应用程序,该应用程序会在窗口大小更改后更改组件大小,并且ComboBox下拉菜单存在问题。窗口大小更改后,下拉菜单的第一次扩展不会更改其宽度,我得到了this。当我第二次扩展列表时,它很好用,但仅当我使用以下代码时:

        comboBoxWindowSize.setCellFactory(new Callback<ListView<WindowSize>, ListCell<WindowSize>>() {
            @Override
            public ListCell<WindowSize> call(ListView<WindowSize> param) {
                ListCell cell = new ListCell<WindowSize>() {
                    @Override
                    public void updateItem(WindowSize windowSize, boolean empty) {
                        super.updateItem(windowSize, empty);
                        setPrefHeight(padH25);
                        getListView().setPrefWidth(padW150);
                        if (!empty) {
                            setText(windowSize.toString());
                        } else {
                            setText(null);
                        }
                    }
                };
                return cell;
            }
        });

当我不使用此代码时,宽度始终保持不正确。我希望下拉宽度等于ComboBox宽度。您能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

好的,我找到了答案。这很丑陋,但实际上有效。 就像我上面说的,它的大小只有在第一次扩展时才是错误的。因此,我要做的就是在更改窗口大小后以编程方式将其展开和折叠:

            comboBoxWindowSize.show();
            comboBoxWindowSize.hide();

仅此而已。