|
|
|
смена цвета в JTable у компонента JCheckBox
|
|||
|---|---|---|---|
|
#18+
уважаемые, я где-то чего-то не догоняю, но уже и в инете поискал, и тут посмотрел, но не могу сделать так, чтобы один столбец (который по условию не может быть редактируемым), состоящий из JCheckBox был другого цвета... Код: plaintext 1. 2. 3. примерно понимаю, что таким обрахом я получаю преобразование в текстовое поле... как мне взять именно JCheckBox и у него поменять (где то не хватает знаний) ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2007, 13:17:57 |
|
||
|
смена цвета в JTable у компонента JCheckBox
|
|||
|---|---|---|---|
|
#18+
А не проще ли унаследовать DefaultTableCellRenderer, в котором получаем значение true или false, сами создаем JCheckBox, меняем у него Background и радуемся. Регистрируем рендерер для конкретного столбца: Код: plaintext Или я чего то не понимаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2007, 13:35:22 |
|
||
|
смена цвета в JTable у компонента JCheckBox
|
|||
|---|---|---|---|
|
#18+
Вот регистировать рендер я как раз знаю как, а вот как сделать подмену новым чекбоксом с изменённым бэкграундом ? Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2007, 14:05:41 |
|
||
|
смена цвета в JTable у компонента JCheckBox
|
|||
|---|---|---|---|
|
#18+
всё, осмыслил... всё таки лекарства от гриппа сильно тормозят разум Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. спасибо за наставление на путь истинный :) (а то уже много вариантов перепробовал) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2007, 14:42:19 |
|
||
|
смена цвета в JTable у компонента JCheckBox
|
|||
|---|---|---|---|
|
#18+
Именно. Попробуйте так: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2007, 14:42:23 |
|
||
|
смена цвета в JTable у компонента JCheckBox
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2007, 14:44:46 |
|
||
|
смена цвета в JTable у компонента JCheckBox
|
|||
|---|---|---|---|
|
#18+
userokвсё, осмыслил... всё таки лекарства от гриппа сильно тормозят разум Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. спасибо за наставление на путь истинный :) (а то уже много вариантов перепробовал) Угу - классно тебя наставили на путь истинный - нечего сказать... Т.е. при каждой перерисовке ячейки (а это может происходить ООЧЕНЬ часто) создается новый экземпляр JCheckBox (создание объекта - очень недешевая операция) - а потом скармливается сборщику мусора. Гениально млин... а потом еще говорят, что Swing тормозной. Создай ОДИН экземпляр JCheckBox в рендерере а в методе getTableCellRendererComponent меняй его selection и цвет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2007, 17:59:12 |
|
||
|
смена цвета в JTable у компонента JCheckBox
|
|||
|---|---|---|---|
|
#18+
И нахрена от DefaultTableCellRenderer наследоваться для отрисовки CheckBox??? Смысл сего действа вам ясен??? Или исходники посмотреть гордость не позволяет? Вообще то DefaultTableCellRenderer наследуется от JLabel, реализует интерфейс TableCellRenderer и в методе getTableCellRendererComponent возвращает ссылку на самого себя - т.е. отрисовывает ячейку с помощью JLabel. А нам надо отрисовать с помощью JCheckBox. Шо делать??? А теперь шевелим немного мозгами, и делаем так же, как взрослые дяди из Sun сделали - создаем новый класс DefaultCheckBoxRenderer, наследуем его от JCheckBox, реализуем интерфейс TableCellRenderer и в методе getTableCellRendererComponent возвращаем ссылку на самого себя (предварительно выставив все нужные параметры).... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2007, 18:14:35 |
|
||
|
смена цвета в JTable у компонента JCheckBox
|
|||
|---|---|---|---|
|
#18+
ДуремарИ нахрена от DefaultTableCellRenderer наследоваться для отрисовки CheckBox??? Смысл сего действа вам ясен??? Или исходники посмотреть гордость не позволяет? Давненько не заглядывал, полсе того как получил хоть какое-то решение проблемы. Тут вот заглянул, хочу сказать что Ваша манера общения - не есть хорошо. Если я сюда пришёл и спросил, дак это не значит, что я решил кому-то мозг потрахать, а мне реально нужна помощь. Если бы все были такими умными как Вы, то на кой Икс тогда форум такого профиля? Он как раз нужен для того, чтобы одни, кто имеет бОльшие знания делился (при желании) с другими. Если вы такой умный и Вас раздражают те кто знает меньше, и по вашему мнению задают дурацкие вопросы, то лучше не отвечать, если же вы хотите помочь, то пожалуйста, делайте это более корректно, не окуная оппонена в грязь. Это мои пожелания на будущее. Далее... ДуремарУгу - классно тебя наставили на путь истинный - нечего сказать... Т.е. при каждой перерисовке ячейки (а это может происходить ООЧЕНЬ часто) создается новый экземпляр JCheckBox (создание объекта - очень недешевая операция) - а потом скармливается сборщику мусора. Гениально млин... а потом еще говорят, что Swing тормозной. Создай ОДИН экземпляр JCheckBox в рендерере а в методе getTableCellRendererComponent меняй его selection и цвет... Если честно то мне с самого начала не очень нравилась идея создания большого количества объектов, но так как опыта мало, меня это мало смутило, и при отрисовке мне это не мешает, потому как на данный момент табличка маленькая (впринципе расти не будет). Но я реализовал это замечание, так как по мере знаний и возможностей пытаюсь оптимизировать. Здесь вам спасибо. Дуремарсоздаем новый класс DefaultCheckBoxRenderer, наследуем его от JCheckBox, реализуем интерфейс TableCellRenderer и в методе getTableCellRendererComponent возвращаем ссылку на самого себя (предварительно выставив все нужные параметры).... Это, при наличии времени, я постараюсь реализовать. С профессиональной точки зрения общение с вами принесло дополнительные знания. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2007, 09:11:10 |
|
||
|
смена цвета в JTable у компонента JCheckBox
|
|||
|---|---|---|---|
|
#18+
userok [off] Я бы на вашем месте просто сказал спасибо Дуремар :( Человек дал очень дельный совет, пусть и не совсем в том виде, что Вам бы хотелось, но лекции по правилам поведения он не заслужил. Более того, его фраза про шевеление мозгами вовсе не обидна, ибо справедлива, и связана не с тем, что Вы начинающий, а с тем, что поленились (я, кстати, тоже частенько ленюсь шевелить мозгами и был бы очень благодарен тому, кто мне на это указал, даже не в очень-то вежливой форме. Если я себя вел как лентяй и дурак (я не намекаю на Вас :) , это просто пример, честное слово), то и назовите меня лентяем и дураком, политкоректность оставьте для страдающих комплексами). Да, и рекомендую прислушаться к его советам без относительно к размерам вашей таблицы - раз уж начинающий, то попробуйте посерьезней отнестись к умным советам. Даже на маленькой табличке не надо городить подобное безобразие и портить себе стиль программирования. [/off] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2007, 09:43:32 |
|
||
|
смена цвета в JTable у компонента JCheckBox
|
|||
|---|---|---|---|
|
#18+
carper Я бы на вашем месте просто сказал спасибо Дуремар :( Человек дал очень дельный совет, пусть и не совсем в том виде, что Вам бы хотелось, но лекции по правилам поведения он не заслужил. Более того, его фраза про шевеление мозгами вовсе не обидна, ибо справедлива, и связана не с тем, что Вы начинающий, а с тем, что поленились (я, кстати, тоже частенько ленюсь шевелить мозгами и был бы очень благодарен тому, кто мне на это указал, даже не в очень-то вежливой форме. Если я себя вел как лентяй и дурак (я не намекаю на Вас :) , это просто пример, честное слово), то и назовите меня лентяем и дураком, политкоректность оставьте для страдающих комплексами). Да, и рекомендую прислушаться к его советам без относительно к размерам вашей таблицы - раз уж начинающий, то попробуйте посерьезней отнестись к умным советам. Даже на маленькой табличке не надо городить подобное безобразие и портить себе стиль программирования. Во-первых, если вы читали ВСЁ, то я не только прислушался к совету, но и реализовал его, за что поблагодарил Дуремара, второй совет так же учёл, так что Ваш последний абзац "в молоко". Во-вторых, шевелить мозгами надо, тут я не спорю, но надо ещё и знать в каком направлении. Я бы не сказал, что мне лень. Когда мне лень, я ничего не делаю, а если делаю, то пытаюсь делать это по мере своих знаний и возможностей, и так как я не смог обнаружить в инете при поиске подсказку для своих действий, то мне пришлось обратиться к профи. В-третьих, да возможно я немного перегнул палку в нравоучениях, но у каждого своя грань, до которой можно терпеть некорректное обращение к себе, и после которой начинать возмущаться. Так что думаю в общении на профессиональные темы стоит придерживаться более адекватного общения, а то так можно далеко зайти, вплоть до мата и прочей ругани. Дальнейшее обсуждение морали общения моего и Дуремара считаю неуместным в данной теме. Если есть ещё что сказать (не по теме), то при желании могу дать мыло или аську. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2007, 10:35:01 |
|
||
|
смена цвета в JTable у компонента JCheckBox
|
|||
|---|---|---|---|
|
#18+
userokТут вот заглянул, хочу сказать что Ваша манера общения - не есть хорошо. Sorry - с тоном я действительно переборщил. Просто я такой код раз 300 у студентов видел - накипело :) Вобщем приношу свои извинения коллега ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2007, 03:16:56 |
|
||
|
смена цвета в JTable у компонента JCheckBox
|
|||
|---|---|---|---|
|
#18+
userok... Еще я бы Вам посоветовал почаще в сановских исходниках копаться - во-первых там уже есть решения многих проблем, над которыми Вы ломаете голову, во вторых прививает хороший стиль программирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2007, 03:23:56 |
|
||
|
смена цвета в JTable у компонента JCheckBox
|
|||
|---|---|---|---|
|
#18+
Еще один бесплатный совет. В версии 1.4 рендереры, сделанные с помощью JCheckBox или JRadioButton, в Windows XP (причем не во всех версиях) начинают дико тормозить. Чёй то там ребята в Сане накосячили. По-моему даже bug-report был. Может быть в 1.5 это поправили - не знаю, не проверял. Вобщем обходится это просто - отрисовывается CheckBox с помощью JLabel (можно отнаследоваться от DefaultTableCellRenderer и там реализовать). Просто делаете две иконки - с галочкой и без, точно такие же как и в JCheckBox, и в JLabel в зависимости от того выбран у вас элемент или нет устанавливайте нужную иконку. Т.е. обычный Label начинает у вас выглядеть точно так же, как и CheckBox. Оптический обман получается - ловкость рук и никакого мошенничества ;) А editor реализуете уже с помощью обычного JCheckBox. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2007, 03:58:34 |
|
||
|
смена цвета в JTable у компонента JCheckBox
|
|||
|---|---|---|---|
|
#18+
Дуремар хорошо, кто старое помянет, тому глаз вон :) а наставления и подсказки с благодарностью принимаю спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2007, 12:02:44 |
|
||
|
смена цвета в JTable у компонента JCheckBox
|
|||
|---|---|---|---|
|
#18+
userok Дуремар кто старое помянет, тому глаз вон :) А кто забудет - тому два... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2007, 12:28:10 |
|
||
|
смена цвета в JTable у компонента JCheckBox
|
|||
|---|---|---|---|
|
#18+
Дуремар userok... Еще я бы Вам посоветовал почаще в сановских исходниках копаться - во-первых там уже есть решения многих проблем, над которыми Вы ломаете голову, во вторых прививает хороший стиль программирования. Исходники Swing у Sun прививают хороший стиль??????? И это говорите Вы, почетный третьекурсник? Ну пора хотя б на четвертый курс глянуть (тот, который без Java) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2007, 19:28:05 |
|
||
|
смена цвета в JTable у компонента JCheckBox
|
|||
|---|---|---|---|
|
#18+
Ы Дуремар userok... Еще я бы Вам посоветовал почаще в сановских исходниках копаться - во-первых там уже есть решения многих проблем, над которыми Вы ломаете голову, во вторых прививает хороший стиль программирования. Исходники Swing у Sun прививают хороший стиль??????? И это говорите Вы, почетный третьекурсник? Ну пора хотя б на четвертый курс глянуть (тот, который без Java) У меня не начинается!!!!! Нууу начинается... (C) Масяня Ну что я могу сказать - каждый мнит себя стратегом видя бой со стороны... А вообще этот пост можно расценить только как попытку раскрутить тупой флуд. Вы не тот форум выбрали батенька - вам в ПТ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2007, 21:09:13 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=34410407&tid=2146277]: |
0ms |
get settings: |
20ms |
get forum list: |
26ms |
check forum access: |
8ms |
check topic access: |
8ms |
track hit: |
53ms |
get topic data: |
23ms |
get forum data: |
5ms |
get page messages: |
107ms |
get tp. blocked users: |
3ms |
| others: | 334ms |
| total: | 587ms |

| 0 / 0 |
