2012-07-06 4 views
0

У меня есть JTree, и у меня есть отображение всего, что мне нужно, но я хочу добавить, какой из файлов я выбираю из JTree в JTextArea. Я сделал это, используя JList, который все, что я делаю, получает выбранный индекс файла в JList, а затем добавляет его к JTextArea ... Но, просматривая JTree, нет способа получить индекс выбранного типа в JList, я искал в Интернете и не повезло найти решение!Java: Как получить индекс файла в JTree

Единственный способ, которым я могу придумать это, иметь несколько методов для поиска по JTree и на каждом уровне возвращать туда, где указатель файла есть, но это много работы, поэтому есть ли лучший способ сделать это ? На самом деле, что я спрашиваю, каков был бы лучший способ сделать это?

ответ

2

Если вы только что позволяет единственный выбор, вы можете использовать:

DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent(); 

Чтобы получить выбранный узел. Вы можете создать карту, где ключ будет DefaultMutableTreeNode, а связанное значение может быть строкой файла, который вы хотите создать.

+1

DefaultMutableTreeNode имеет свойство объекта пользователя, в которое вы можете поместить имя файла, поэтому нет необходимости в отдельной карте. –

+0

Вы правы @WalterLaan, нет необходимости в Map, но таким образом он мог бы иметь любой объект вместо String, поэтому я считаю, что это хорошая практика, когда вы учитесь. –