Как увеличить высоту Jscrollpane после того, как она станет видимой? ⇐ JAVA
Как увеличить высоту Jscrollpane после того, как она станет видимой?
У моего клиента есть библиотека классов, расширяющая компоненты Swing. Один класс расширяет Jscrollpane. Бывает случай, когда он знает, что в нем будет отображаться. (Текстовый компонент с возможностью увеличения размера, например текстовое поле)
До сих пор у него был метод init, вызываемый из конструктора, который никогда не устанавливает полосы прокрутки.
Теперь он хотел бы изменить конструктор, чтобы он принимал логическое значение true, которое в методе init будет устанавливать горизонтальную полосу прокрутки as_needed при использовании true.
Он также хочет, чтобы высота полосы прокрутки увеличилась заранее так, как предпочитаемый размер.высота + 16. (Даже если полоса прокрутки не отображается)
Он предлагает сделать это в методе init, который выполняется до того, как он становится видимым. Но когда я отлаживаю код, параметрeferredsize.height равен 0. Поэтому я не могу вычислить высоту расширителя для отправки в setPreferredSize.
Мне нужно найти способ узнать размер JScrollPane раньше, но он будет виден. Или способ увеличить размер после того, как он станет видимым.
Ребята, вы видите какое-нибудь решение этой проблемы?
Я попытался добавить прослушиватель изменений, который обнаружил, что полоса прокрутки видна, а затем увеличил ее высоту. В результате пользовательский интерфейс оказался не очень хорошим, поскольку высота переключалась, когда полоса прокрутки была видна или нет. Не совсем то, что хотел клиент.
У моего клиента есть библиотека классов, расширяющая компоненты Swing. Один класс расширяет Jscrollpane. Бывает случай, когда он знает, что в нем будет отображаться. (Текстовый компонент с возможностью увеличения размера, например текстовое поле)
До сих пор у него был метод init, вызываемый из конструктора, который никогда не устанавливает полосы прокрутки.
Теперь он хотел бы изменить конструктор, чтобы он принимал логическое значение true, которое в методе init будет устанавливать горизонтальную полосу прокрутки as_needed при использовании true.
Он также хочет, чтобы высота полосы прокрутки увеличилась заранее так, как предпочитаемый размер.высота + 16. (Даже если полоса прокрутки не отображается)
Он предлагает сделать это в методе init, который выполняется до того, как он становится видимым. Но когда я отлаживаю код, параметрeferredsize.height равен 0. Поэтому я не могу вычислить высоту расширителя для отправки в setPreferredSize.
Мне нужно найти способ узнать размер JScrollPane раньше, но он будет виден. Или способ увеличить размер после того, как он станет видимым.
Ребята, вы видите какое-нибудь решение этой проблемы?
Я попытался добавить прослушиватель изменений, который обнаружил, что полоса прокрутки видна, а затем увеличил ее высоту. В результате пользовательский интерфейс оказался не очень хорошим, поскольку высота переключалась, когда полоса прокрутки была видна или нет. Не совсем то, что хотел клиент.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение