JavaFX - Почему кнопки иногда сжимаются? - PullRequest
0 голосов
/ 05 июля 2018

В javaFX, почему мои кнопки иногда случайным образом сжимаются при наведении на них курсора?

enter image description here

Почему это происходит и как мне это остановить.

Вот мой код для изображенной кнопки, но я не знаю, нужна ли она вам. Кажется, это происходит и с другими кнопками, и не всегда с одной и той же кнопкой.

btnNext = new Button(">");
    btnNext.setOnAction(e -> {
        switch (view) {
            case MONTH:
                setDisplay(target.plusMonths(1));
                break;
            case WEEK:
                setDisplay(target.plusWeeks(1));
                break;
        }
    });

Это происходит только ПОСЛЕ того, как я щелкаю по нему и затем ухожу. При первом запуске программа имеет нормальный размер.

1 Ответ

0 голосов
/ 05 июля 2018

Когда элемент управления сжимается, обычно это хороший признак того, что что-то еще крадет пространство у него. При нормальных условиях Scene будет запрашивать все узлы-потомки, сколько места ему нужно для визуализации - это то, что prefWidth и prefHeight делают.

При наличии ограниченного пространства большинство подклассов Pane (напомним, что подклассы Pane управляют своими дочерними элементами на основе определенных правил) будут пытаться уменьшить размер одного или нескольких дочерних элементов. Если вы не хотите, чтобы конкретный Node уменьшался ниже расчетного размера, то необходимо указать minWidth и / или minHeight или установить их на USE_PREF_SIZE. Установка одного или обоих из них на USE_PREF_SIZE говорит родителю, что этот узел не должен уменьшаться.

Однако, если вы укажете USE_PREF_SIZE для всех узлов, то у родителя будут проблемы - ему сказали сжать, но он ничего не смог сжать. Я не знаю точно, что произойдет, но, скорее всего, весь пользовательский интерфейс будет выглядеть странно.

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