Пользовательские компоненты, которые могут выходить за пределы контейнера - как? - PullRequest
1 голос
/ 22 января 2012

Допустим, у вас есть JPanel размером 200 x 200 с настраиваемым компонентом типа комбинированного блока, раскрывающийся список которого должен выходить за пределы JPanel 200 x 200.

Проблема в том, что япроблема в том, что раскрывающийся список либо не «рисует» за пределами контейнера, либо размер контейнера определяется в соответствии с раскрывающимся списком.

Как добавить компонент в контейнер, который позволяет этому компоненту расширятьсяза пределы контейнера?Как Java JComboBox делает это внутренне?

Ответы [ 2 ]

3 голосов
/ 22 января 2012

Просто используйте JPopupMenu для выпадающего списка. JPopupMenu внутренне будет обрабатывать рисование по краям и за их пределами.

1 голос
/ 22 января 2012

Если вы продолжите разработку приложения, скриншоты которого вы разместили здесь, вы должны искать, как использовать JWindow (недекорированный контейнер верхнего уровня), например, один из лучших JCalendar, SwingX , для full_workaround около setVisible / toFront / FocusSubsystem / on focusGained/focusLost

нет проблем, установите JWindow для Point сsetSize, который вы можете вернуть из любого JComponent

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