|
|
|
Вопрос по JTree
|
|||
|---|---|---|---|
|
#18+
При кликаньи на элементе дерева правой кнопкой мыши нужно определить элемент дерева на котором произошёл клик. Как это сделать? перехватываю mousePressed(MouseEvent e). Но MouseEvent не содержит пути. Подскажите пожалуйста как определить элемент на котором произошёл клик ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2004, 18:36 |
|
||
|
Вопрос по JTree
|
|||
|---|---|---|---|
|
#18+
DefaultMutableTreeNode l_node; TreePath tp; tp = tree.getSelectionPath(); if (tp == null){ return; } l_node = (DefaultMutableTreeNode)(tp.getLastPathComponent()); где tree - объект JTree. По крайней мере - у меня так :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2004, 19:02 |
|
||
|
Вопрос по JTree
|
|||
|---|---|---|---|
|
#18+
По-умолчанию JTree не выбирает элемент, на котором кликаешь правой кнопкой мыши. Для начала надо его выбрать, а потом, как в вышеприведенном посте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2004, 10:40 |
|
||
|
Вопрос по JTree
|
|||
|---|---|---|---|
|
#18+
Vadim RomanenkoDefaultMutableTreeNode l_node; TreePath tp; tp = tree.getSelectionPath(); if (tp == null){ return; } l_node = (DefaultMutableTreeNode)(tp.getLastPathComponent()); где tree - объект JTree. По крайней мере - у меня так :) Это не то. Мне надо по щелчку ПРАВОЙ кнопки мыши. Почему-то когда кликаешь правой кнопкой на дереве эл-мент не выделяется (не устанавливается курсор, что он выбран). Можно ли как-нибуть определить на каком элементе произошёл клик? Или это не возможно для правой кнопки мыши ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2004, 10:51 |
|
||
|
Вопрос по JTree
|
|||
|---|---|---|---|
|
#18+
Ну вот я вроде посмотрел в доке - есть такой пример: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. а по имеющемуся пути - можно определить node как показано выше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2004, 12:15 |
|
||
|
Вопрос по JTree
|
|||
|---|---|---|---|
|
#18+
После выбора какогото элемента дерева надо произвести какое-то действие. Можно конечно взять полный путь и передать его в switch и по этому пути определить какие действия нужно сделать. Может можно это сделать как-то по другому? Можно ли элементу присвоить какой-нибудь псевдоним (ID) и в switch передавать псевданим и работать с псевдонимами, а не с путями. Если можно то подскажите методы пожалуйста. Или может ещё есть какие-нибудь варианты ещё, чтобы выполнить действие на выбор элемента? Если нет ни каких других возможностей кроме как определять по пути сообщите пожалуйста. Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2004, 12:32 |
|
||
|
Вопрос по JTree
|
|||
|---|---|---|---|
|
#18+
Вот - с каким-то элементом дерева можно ассоциировать класс. node = new DefaultMutableTreeNode(nodeData); model.insertNodeInto(node, admtn, admtn.getChildCount()); где nodeData - экземпляр какого-то класса, которым я пичкаю все элементы дерева, admtn - DefaultMutableTreeNode, к которому добавляются новые элементы. Потом, при выборе конкретного элемента, я выбираю из него userObject и работаю с классом, представляющим информацию об этом узле: mnode = (ITreeNode)(l_node.getUserObject()); ll_id = mnode.getID(); где ITreeNode - это и есть тот самый класс, представляющий узел дерева, а mnode - его экземпляр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2004, 13:12 |
|
||
|
Вопрос по JTree
|
|||
|---|---|---|---|
|
#18+
Vadim RomanenkoВот - с каким-то элементом дерева можно ассоциировать класс. node = new DefaultMutableTreeNode(nodeData); model.insertNodeInto(node, admtn, admtn.getChildCount()); где nodeData - экземпляр какого-то класса, которым я пичкаю все элементы дерева, admtn - DefaultMutableTreeNode, к которому добавляются новые элементы. Потом, при выборе конкретного элемента, я выбираю из него userObject и работаю с классом, представляющим информацию об этом узле: mnode = (ITreeNode)(l_node.getUserObject()); ll_id = mnode.getID(); где ITreeNode - это и есть тот самый класс, представляющий узел дерева, а mnode - его экземпляр. Что-то я не понял, что за nodeData. Как этот объект отобразится в дереве? Что из себя он представляет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2004, 13:32 |
|
||
|
Вопрос по JTree
|
|||
|---|---|---|---|
|
#18+
master=new Master(appData); appData.getTreeModel().insertNodeInto(new DefaultMutableTreeNode(master), treeNode2,0); getTreeModel - возвращает DefaultTreeModel: Конструктор использую public XmlTree(TreeModel newModel, ApplicationData appData): Почему не вставляется элемент? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2004, 17:15 |
|
||
|
Вопрос по JTree
|
|||
|---|---|---|---|
|
#18+
ShkVal Что-то я не понял, что за nodeData. Как этот объект отобразится в дереве? Что из себя он представляет? nodeData - это некоторый класс, ассоциированный с узлом дерева. Если не ошибаюсь, при отопражении узла, созданного на основе такого класса, для отображения выводится то, что возвращается методом toString() созданного экземпляра класса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2004, 11:36 |
|
||
|
Вопрос по JTree
|
|||
|---|---|---|---|
|
#18+
ShkValmaster=new Master(appData); appData.getTreeModel().insertNodeInto(new DefaultMutableTreeNode(master), treeNode2,0); getTreeModel - возвращает DefaultTreeModel: Конструктор использую public XmlTree(TreeModel newModel, ApplicationData appData): Почему не вставляется элемент? Возможно, метод Master.toString() возвращает пустую строку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2004, 11:40 |
|
||
|
Вопрос по JTree
|
|||
|---|---|---|---|
|
#18+
Так что - вышло или нет? А то ж интересно... Хотя - вроде должно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2004, 18:45 |
|
||
|
Вопрос по JTree
|
|||
|---|---|---|---|
|
#18+
Vadim RomanenkoТак что - вышло или нет? А то ж интересно... Хотя - вроде должно. Вышло. Заработало всё :). Тока из-за чего было так и не понял. Мучался и всё получилось. Код по добавлению компонента остался прежним. Спасибо за помощь. У меня ещё есть вопрос по JLabel можно ли JLabel сделать мультилайновый т. е. если текст длинный чтобы он вывелся в несколько строк (задав длинну строки и если она не помещ-ся в 1 строчку чтобы разбилось на 2 или более если надо) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2004, 18:57 |
|
||
|
Вопрос по JTree
|
|||
|---|---|---|---|
|
#18+
Так а если не секрет - можно в студию код по определению node по правой кнопке? А то мало ли - прийдется делать, а как - зачем разбираться :) И кстати - что помогло? Перекрытие метода toString()? Или что-то еще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2004, 19:01 |
|
||
|
Вопрос по JTree
|
|||
|---|---|---|---|
|
#18+
Vadim RomanenkoТак а если не секрет - можно в студию код по определению node по правой кнопке? А то мало ли - прийдется делать, а как - зачем разбираться :) И кстати - что помогло? Перекрытие метода toString()? Или что-то еще? код по определению node по правой кнопке Всё очень просто public void mouseReleased(MouseEvent e) { if (e.isPopupTrigger()) { TreePath treePath = tree.getPathForLocation(e.getX(), e.getY()); //U may access jtree reference from here. //forcely select treePath tree.setSelectionPath(treePath); DefaultMutableTreeNode l_node = (DefaultMutableTreeNode)treePath.getLastPathComponent(); AbstractTag node = (AbstractTag)(l_node.getUserObject()); node.showContextMenu(l_node,(int)e.getPoint().getX(), (int)e.getPoint().getY()); } где tree- JTree, то самое дерево с которым работаю. Дело было не в toString. Компонент добавлялся, но дерево не раскрывалось и мне показалост что компонент не добавлен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2004, 19:18 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=832&tid=2153488]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 336ms |

| 0 / 0 |
