|
|
|
Активация / деактивация отдельных элементов в JList
|
|||
|---|---|---|---|
|
#18+
Всем доброго. Пытался сделать такое - например, кликаешь на определенном элементе в JList и от этого все прочие должны становиться серыми и недоступными (некликабельными). Нормального примера в сети найти не удалось, знаю лишь, что тут надо использовать DefaultListCellRenderer и свойство списка setCellRenderer, но у самого сконструировать аткое не получается. Хотелось бы, чтобы рендео выглядел примерно так же, как этот простой, убирающий выделение и фокус во всем списке: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. Очень рассчитываю на чью-нибудь помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 13:45 |
|
||
|
Активация / деактивация отдельных элементов в JList
|
|||
|---|---|---|---|
|
#18+
код за вас написать? Или что именно у вас не получилось? Вам нужно проверить, если есть хоть один выбраный, элемент, то вызывать ваш код, если нет, то только super метод. В вашем коде раскрашивать в соответствии с аргументом isSelected. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 13:58 |
|
||
|
Активация / деактивация отдельных элементов в JList
|
|||
|---|---|---|---|
|
#18+
Blazkowiczкод за вас написать? Ну, положим, код целиком за меня писать не надо, но поскольку опыта при низкоуровневом использовании java GUI у меня практически нет, как нет его и в написании рендеров, то хотелось бы видеть намек из пары строк. А там, глядишь, остально сам додумаю, Вы очень хорошо всегда объясняете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 16:25 |
|
||
|
Активация / деактивация отдельных элементов в JList
|
|||
|---|---|---|---|
|
#18+
CellRenderer-ом можно добиться того, чтобы рзные элементы списка по разному отображались, но они по-прежнему останутся кликабельными. Т.е. если даже и нарисовать их серыми - жмакнуть по ним можно будет, и текущее выделение изменится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 17:09 |
|
||
|
Активация / деактивация отдельных элементов в JList
|
|||
|---|---|---|---|
|
#18+
ПолуламерНу, положим, код целиком за меня писать не надо, но поскольку опыта при низкоуровневом использовании java GUI у меня практически нет, как нет его и в написании рендеров, то хотелось бы видеть намек из пары строк. А там, глядишь, остально сам додумаю, Вы очень хорошо всегда объясняете. Ну, вы правильно начали. Я вам описал что добавить в код приведенный выше. Пробуйте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 17:11 |
|
||
|
Активация / деактивация отдельных элементов в JList
|
|||
|---|---|---|---|
|
#18+
For AllCellRenderer-ом можно добиться того, чтобы рзные элементы списка по разному отображались, но они по-прежнему останутся кликабельными. Т.е. если даже и нарисовать их серыми - жмакнуть по ним можно будет, и текущее выделение изменится +1 Правда, если это так, то постановка задачи какая-то странная. Выбрать можно только один раз. Не попал в нужный элемент, значит не судьба. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 17:12 |
|
||
|
Активация / деактивация отдельных элементов в JList
|
|||
|---|---|---|---|
|
#18+
В общем-то сделал как хотел, немножко поковырявшись в интернете и справившись с собственной тупостью. Есть несколько иной вопрос, хотя и связанный с JList и их раскраской. Значит, их несколько, заполняются на этапе initComponents(), там же устанавливаются и "разноцветные" рендеры, ну то есть выглядит примерно так: Код: java 1. 2. 3. 4. 5. 6. 7. Но вот никак не получается сделать так, чтобы списки высветились сразу во всей разноцветной красе. То есть если на них кликнуть, то все отлично отображается, а автоматика не работает, пробовал setSelectedIndex(0) - активизируется самый последний, т.е. получается, что кликнули как бы только на нем, repaint() тоже не принес результатов. Можно ли организовать такое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 12:38 |
|
||
|
Активация / деактивация отдельных элементов в JList
|
|||
|---|---|---|---|
|
#18+
Полуламер, Весь код где используется stringValuesList покажите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 12:48 |
|
||
|
Активация / деактивация отдельных элементов в JList
|
|||
|---|---|---|---|
|
#18+
Он в очень многих местах используется, не совсем понятно, что нужно показать. Касательно блока initComponents(): Код: java 1. 2. 3. А в setEditableValues() ничего крамольного, там для разных списков: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. и никакого результата - вернее, если не делать setSelectedIndex(0) для других списков, то тогда этот "кликнется". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 13:02 |
|
||
|
Активация / деактивация отдельных элементов в JList
|
|||
|---|---|---|---|
|
#18+
Как создаётся экземпляр stringValuesList? Как в него попадают данные? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 13:10 |
|
||
|
Активация / деактивация отдельных элементов в JList
|
|||
|---|---|---|---|
|
#18+
BlazkowiczКак создаётся экземпляр stringValuesList? Это элемент формы, сгенерированный JFormDesigner в IntelliJ. Как в него попадают данные? Примерно так: Код: java 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 13:17 |
|
||
|
Активация / деактивация отдельных элементов в JList
|
|||
|---|---|---|---|
|
#18+
ПолуламерЭто элемент формы, сгенерированный JFormDesigner в IntelliJ. Вот в этом и проблема. Вам дизайнер что-то сгенерировал, а вы теперь не знаете в каком оно порядке выполняется. ПолуламерПримерно так: В том то и дело, что "примерно". У вас есть вот такой набор операций, но ни вы, ни я не знаем в каком порядке они все выполняются. А порядок в императивном языке таки на что-то влияет. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 13:24 |
|
||
|
Активация / деактивация отдельных элементов в JList
|
|||
|---|---|---|---|
|
#18+
Но все же решающим моментом явлется присваивание рендера, это ведь он раскрашивает списки. В какой момент его нужно присваивать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 13:32 |
|
||
|
Активация / деактивация отдельных элементов в JList
|
|||
|---|---|---|---|
|
#18+
ПолуламерНо все же решающим моментом явлется присваивание рендера, это ведь он раскрашивает списки. В какой момент его нужно присваивать? До того как компонент показан на видимом окне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 13:38 |
|
||
|
Активация / деактивация отдельных элементов в JList
|
|||
|---|---|---|---|
|
#18+
Понятно. А можно отловить это событие, есть какое-то onShow или onVisible для диалога в Java? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 13:46 |
|
||
|
Активация / деактивация отдельных элементов в JList
|
|||
|---|---|---|---|
|
#18+
А если установку своего рендерера сделать ДО того, как список добавляется в контейнер (в примере выше)? Может так заработает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 15:14 |
|
||
|
Активация / деактивация отдельных элементов в JList
|
|||
|---|---|---|---|
|
#18+
For All, рендерер вроде вызывается в момент отрисовки компонента, и нет никакой разницы до установки модели он присвоен компоненту или после, главное до показа компонента. если не ошибаюсь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 16:52 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38598080&tid=2127426]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
171ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 473ms |

| 0 / 0 |
