|
Левая кнопка в JTree
|
|||
---|---|---|---|
#18+
Господа! Чтоб полюзователь имел выпадающее меню при нажатии на правую кнопку мыши на выбранном ноде - как реализуется. Никогда не делал, а хочется ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2004, 12:36 |
|
Левая кнопка в JTree
|
|||
---|---|---|---|
#18+
я вроде на винграде приводил в форуме пример кода .: 6.000.000 ways to die :. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2004, 09:50 |
|
Левая кнопка в JTree
|
|||
---|---|---|---|
#18+
не нашел я там такого! ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2004, 11:39 |
|
Левая кнопка в JTree
|
|||
---|---|---|---|
#18+
http://forum.vingrad.ru/index.php?showtopic=21432 тока там малость не то :) тебе чего конкретнее надо? у меня дохера накодено по jtree... в том числе и с попап-меню .: 6.000.000 ways to die :. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2004, 11:53 |
|
Левая кнопка в JTree
|
|||
---|---|---|---|
#18+
издай книгу - я б почитал :) Хочу, чтоб пользователь работал с базами, как в DBAStudio Oracle - ну конечно задачи более частные. И вот делаю это так: 1.Установил на JPanel две JScrollPane - справа JTree, слева - JPanel, внизу - JTextArea. Думал делать TreeModel под объекты типа Base, Table, Column etc -но потом просто использовал Default... и привязал к ним такого плана обэекты- не знаю, правильно так или нет. 2. Когда выбирается node - достаю из него userObject (они все расширяют класс Base - ну мой такой класс), цепляю к нему вот так слушатель base.removePropertyChangeListener(propertyListener); base.addPropertyChangeListener(propertyListener); и вызываю метод getPanel() из userObject для выбранного же нода и ставлю ее на правую панель JScrollPane.Короче панель на панель и validate()? 3.Теперь хочу, чтоб когда я выбираю этот нод и нажимаю правую мышь, выпадало контекстное меню в зависимости от объекта - ну то же самое, что появляется в правой панеле - и там например, если выбрана база, то чтоб было "подсоединиться..." - если таблица - "просмотреть, ..." Как ты это делаешь. И вообще всю эту конструкцию правильно я леплю? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2004, 12:30 |
|
Левая кнопка в JTree
|
|||
---|---|---|---|
#18+
да я в общем так же. т.е. использую default. а вот CellRenderer - свой. надо нам чтоб ноды были с разными иконками и прочей херней. userObject - тоже свой интерфейс, который потом реализуется нужными классами - как у тебя. дальше мне надо было по клике на ноде (т.е. ее выборе) показывать список свойств в зависимости от userObject'а в таблице. каждый класс, реализующий мой интерфейс NodeItem реализовывал метод getProperties, в который я спихивал все свойства userObject'a. для этого надо было писать реализацию TableModel. написал, но показалось херней полной и по причине небольшого количества классов, реализующих NodeItem (4 штуки) сделал так: на панель свойств повесил CardLayout, на каждую панель которого сделал свой ui для каждого класса из userObject. и переключал эти самые card'ы при выборе ноды. пока работает :) с попап-меню тоже несложно. у меня класс (TreePopupMenu), расширяющий JPopupMenu. и класс (PopupListener), расширяющий MouseAdapter. ничего сложного не делают - для спокойствия и удобства :) в частности PopupListener позволяет при клике правой кнопкой выбрать ноду: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Код: plaintext
Код: plaintext
далее создаем экземпляры: Код: plaintext 1. 2.
для JTree - ставим слушателя: Код: plaintext
и наполняем меню пунктами JMenuItem. в частности есть пункт "свойства", которые у каждого userObject'а свои. по клике правой кнопкой на ноде определяется выбранная нода, например упомянутый "свойства", и в зависимости от userObject'a показывается диалог свойств для этого userObject'a. написал тут текста дохера с большими перерывами :) может чего и непонятно :) .: 6.000.000 ways to die :. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2004, 14:17 |
|
Левая кнопка в JTree
|
|||
---|---|---|---|
#18+
Спасибо.Сейчас попробую разобраться. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2004, 15:59 |
|
|
start [/forum/topic.php?fid=59&msg=32507238&tid=2154135]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 132ms |
0 / 0 |