Итак, я создал JTree и хочу добавить узел с именем «Hello» всякий раз, когда пользователь нажимает кнопку.Вот функция, которая выполняется, когда пользователь нажимает кнопку:
private static void addModel() {
MainWindow mainWindow = new MainWindow();
DefaultTreeModel model = (DefaultTreeModel) mainWindow.tree1.getModel();
DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode) mainWindow.tree1.getLastSelectedPathComponent();
System.out.println("2");
if (selectedNode != null) {
selectedNode.insert(new DefaultMutableTreeNode("Hello"), selectedNode.getIndex(selectedNode.getLastChild()));
model.reload(selectedNode);
System.out.println("1");
}
mainWindow.tree1.setModel(model);
}
По сути, она должна получить модель, получить выбранный узел, если узел выбран, затем вставить новый в конце, перезагрузитьзатем установите модель дерева в новую модель.Числа, напечатанные на консоли, предназначены исключительно для того, чтобы убедиться, что каждая часть работает, и независимо от того, что я делаю, выбираю разные узлы или что-то еще, я получаю только 2 с (иначе selectedNode
всегда равно null
).Почему это так, и как я могу добавить новый компонент в JTree?