Выберите TreeNode раньше (свинг Java, дерево)
Я ищу способ выбрать TreeNode перед фактически выбранным узлом (если Node не выбран, первый узел ПОСЛЕ корня должен быть выбран) при нажатии кнопки. У меня в основном Hashtable ht и JTree, заполненные узлами (все узлы позволяют детям). Как только я щелкаю по узлу, я хочу найти в Hashtable этот объект, и система должна написать что-то вроде "Вы выбрали" Object.name "". Тогда пользователь должен иметь возможность щелкнуть JButton и выбрать узел перед щелкающим узлом. Конечно, также должна быть эта строка с обновленным "Object.name". Может быть, есть даже способ обновить GUI дерева, чтобы другой TreeNode отображался как выбранный.
Я довольно долго пробовал с treePath-методами selectionModel и TreeNodes (например, сохраняя их в списках и пытаясь выбрать элемент раньше), но, похоже, ничего не работает. Я также не нахожу ничего полезного в Google или Stackru. Я думал, что это может работать как-то с методом getPreviousSibling из DefaultMutableTreeNode?
Последнее, что я попробовал:
DefaultMutableTreeNode treeNode = new DefaultMutableTreeNode();
treeNode = (DefaultMutableTreeNode) getLastSelectedPathComponent();
setSelectionPath(new TreePath(((DefaultTreeModel) treeModel).getPathToRoot(treeNode.getPreviousSibling())));
К сожалению, я продолжаю получать исключение NullPointerException:
во второй строке этого фрагмента (хотя я и выбрал другой TreeNode ранее, у которого ранее был брат).
Может ли кто-нибудь сказать мне, что я сделал не так или сказать, что может работать иначе?:D Если вам нужна дополнительная информация, пожалуйста, не обращайте внимания на меня.