![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| BlHol |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 26.11.2005 Репутация: нет Всего: нет |
Добрый день!
В JBuildere в дизайнере рисую компонент jTabbedPane1. Добавляю к нему несколько ярлычков:
Задача такая. При клике на ярлычке он должен заливаться каким-либо цветом. При этом, этим же цветом должен заливаться и весь компонент, НО остальные ярлычки не должны менять цвет Вот обработчик клика:
Как решить проблему? Заранее благодарен. С уважением. |
||||
|
|||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Под ярлычком подразумевается закладка TabbedPane?
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| BlHol |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 26.11.2005 Репутация: нет Всего: нет |
Она, самая!
Забыл добавить, что результат таков: при клике окрашиваются и ярлычки, а не нужно, чтоб окрашивались. Это сообщение отредактировал(а) BlHol - 10.2.2006, 12:48 |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Ничего не понял, что надо сделать?
Отрисовка закладки полностью лежит на TabbedPaneUI и без его переписывания не обойтись. В принципе это реализуемо, но надо смотреть чтобы твой компонент не выделялся среди других компонентов. Если интерестно могу посмотреть, но позже. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| BlHol |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 26.11.2005 Репутация: нет Всего: нет |
Сделать нужно вот что.
Есть три закладки TabbedPane. Когда кликаем по одной из них, она выходит на передний план. Но этого мало. Нужно, чтоб при клике закладка окрашивалась, например, в синий. Причем, не только сам ярлычок, но и вся панелька. При этом нужно, чтобы 2 оставшихся (неактивных) ярлычка свой цвет не меняли. А у меня получается, что при клике окрашивается и активный и неактивные ярлычки. |
|||
|
||||
| powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
используй методы
setForegroundAt(int index, Color c); setBackgroundAt(int index, Color c); Для компонента JTabbedPane естественно. index - номер вкладки. Сolor - цвет. Это сообщение отредактировал(а) MoonCat - 10.2.2006, 15:06 |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Для того чтобы гарантировано изменить цвет закладки нужно переписать UI.
Для Metal такой код сработает:
А для Windows нет. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
ИМХО, достаточно изменить цвет надписи ярлычка на более яркий, и получить прекрасное выделение закладки. Это работает везде. А изменение цвета фона уже пребор. Впрочем, автору виднее... Это сообщение отредактировал(а) MoonCat - 10.2.2006, 15:43 |
|||
|
||||
| BlHol |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 26.11.2005 Репутация: нет Всего: нет |
Благодарствую! Только зразу возникает вопрос: как "поймать" номер вкладки при клике? Ведь int index нужно откуда-то получить. Заранее благодарен. С уважением. |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
Обрабатываешь событие изменения состояния JTabbedPane для того чтобы в момент изменения поменять цвета у вкладки. Для получения текущей вкладки используй
jTabbedPane1.getSelectedIndex(). Но незабудь сменить цвета у вкладки которая уже не является активной. Для этого её номер (видимо) придется сохранять в какой-нибудь переменной.
опередили..... Это сообщение отредактировал(а) MoonCat - 10.2.2006, 16:09 |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |