| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Заливка части компонента? |
| Автор: BlHol 10.2.2006, 12:25 | ||||
| Добрый день! В JBuildere в дизайнере рисую компонент jTabbedPane1. Добавляю к нему несколько ярлычков:
Задача такая. При клике на ярлычке он должен заливаться каким-либо цветом. При этом, этим же цветом должен заливаться и весь компонент, НО остальные ярлычки не должны менять цвет Вот обработчик клика:
Как решить проблему? Заранее благодарен. С уважением. |
| Автор: LSD 10.2.2006, 12:29 |
| Под ярлычком подразумевается закладка TabbedPane? |
| Автор: BlHol 10.2.2006, 12:46 |
| Она, самая! Забыл добавить, что результат таков: при клике окрашиваются и ярлычки, а не нужно, чтоб окрашивались. |
| Автор: BlHol 10.2.2006, 14:49 |
| Сделать нужно вот что. Есть три закладки TabbedPane. Когда кликаем по одной из них, она выходит на передний план. Но этого мало. Нужно, чтоб при клике закладка окрашивалась, например, в синий. Причем, не только сам ярлычок, но и вся панелька. При этом нужно, чтобы 2 оставшихся (неактивных) ярлычка свой цвет не меняли. А у меня получается, что при клике окрашивается и активный и неактивные ярлычки. |
| Автор: powerOn 10.2.2006, 15:00 |
| используй методы setForegroundAt(int index, Color c); setBackgroundAt(int index, Color c); Для компонента JTabbedPane естественно. index - номер вкладки. Сolor - цвет. |
| Автор: LSD 10.2.2006, 15:34 | ||
| Для того чтобы гарантировано изменить цвет закладки нужно переписать UI. Для Metal такой код сработает:
А для Windows нет. |
| Автор: powerOn 10.2.2006, 15:42 | ||
ИМХО, достаточно изменить цвет надписи ярлычка на более яркий, и получить прекрасное выделение закладки. Это работает везде. А изменение цвета фона уже пребор. Впрочем, автору виднее... |
| Автор: BlHol 10.2.2006, 15:58 | ||
Благодарствую! Только зразу возникает вопрос: как "поймать" номер вкладки при клике? Ведь int index нужно откуда-то получить. Заранее благодарен. С уважением. |
| Автор: LSD 10.2.2006, 16:01 | ||
|
| Автор: powerOn 10.2.2006, 16:08 | ||
| Обрабатываешь событие изменения состояния JTabbedPane для того чтобы в момент изменения поменять цвета у вкладки. Для получения текущей вкладки используй jTabbedPane1.getSelectedIndex(). Но незабудь сменить цвета у вкладки которая уже не является активной. Для этого её номер (видимо) придется сохранять в какой-нибудь переменной.
опередили..... |