![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Real McCoy |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 28.6.2007 Репутация: 2 Всего: 2 |
Здравствуйте все!
Помогите, плз, разобраться в следующем: я пишу класс, который расширяет JPanel.
Т.е. именно таким должен представляться объект его контейнеру. К коду контейнера я никакого доступа не имею. У контейнера область, в которую будет вставляться моя панель, может быть разного размера, поэтому есть идея вставлять свою панель в JScrollPane. Но вот вопрос: можно ли сделать это в моём коде, и так, чтобы контейнер попрежнему видел мой объект как JPanel? Буду весьма признателен за пример |
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 7 Всего: 151 |
Я не очень уловил смысл вопроса. Контейнер по-любому сможет добавить в себя компонент, унаследованный от awt.Component, т.е. и JPanel, и JScrollPane. Ну а если в качестве контейнера выступает какой-то самописный компонент, которому нужен именно JPanel для добавления, то можно сделать так: наследовать MyClass от JPanel, в него вставлять JScrollPane, а в него - ещё один JPanel.
-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| Real McCoy |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 28.6.2007 Репутация: 2 Всего: 2 |
Всё правильно уловил. Спасибо! Я про второй вариант думал, хотя он мне и не очень нравится. А он будет так работать, как я описал? Т.е. внешняя панель будет автоматом ресайзиться до размера области, куда контейнер кладёт мой объект, а внутреннюю панель уже будет прокручивать JScrollPane, так? Впрочем, я сейчас попробую, чем пассивно ждать ответа |
|||
|
||||
| Real McCoy |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 28.6.2007 Репутация: 2 Всего: 2 |
Попробовал. Сделал именно так, как предлагали, и как мне не нравилось: мой класс - JPanel включает в себя JScrollPane, на которой лежит панель с контролами. Всё работает
|
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 7 Всего: 151 |
Это зависит от layout'а контейнера. Для контейнера по умолчанию и для BorderLayout'а - да. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| Real McCoy |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 28.6.2007 Репутация: 2 Всего: 2 |
Проблема неожиданно получила развитие :(
Сделал пример по принципу, описанному выше. Получил фрейм с моей панелью, но без вертикального скроллбара. Если же поставить принудительно scrollPane.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); то скроллбар появляется, но нижняя его стрелка находится где-то за пределами окна. Почему так? в чём я не прав? Вот код примера:
Это сообщение отредактировал(а) Real McCoy - 9.2.2008, 19:58 |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |