因此,我创建了一个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);
}
基本上应该获得模型,获得选定的节点,如果选择了一个节点,则在末尾插入一个新节点,重新加载它,然后将树的模型设置为新模型。打印到控制台的数字仅用于确保每个部分都在运行,无论我做什么,选择不同的节点或其他任何东西,我只会得到2s(aka selectedNode
始终等于null
) 。为什么会这样,以及如何将新组件添加到我的JTree中?