Проблема с шириной раскрывающегося списка ComboBox после изменения размера окна в JavaFX - PullRequest
0 голосов
/ 11 июля 2019

Я работаю над приложением 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 голосов
/ 22 июля 2019

Хорошо, я нашел ответ. Это очень некрасиво, но на самом деле это работает. Как я уже говорил выше, его размер некорректен только при первом расширении. Поэтому все, что мне нужно было сделать, это развернуть и свернуть программно после того, как я изменил размер окна:

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

И это все.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...