Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在JTree结构更改时突出显示选定节点_Java_Swing_Jtree - Fatal编程技术网

Java 如何在JTree结构更改时突出显示选定节点

Java 如何在JTree结构更改时突出显示选定节点,java,swing,jtree,Java,Swing,Jtree,我构建了一个动态添加和删除节点的JTree。我有两个按钮,允许所选节点上下移动。该函数工作正常,但一旦向上移动一级,则该节点的选择将消失。我希望用户多次单击该按钮,以使节点到达他希望的位置。因此,请让我知道如何设置节点选择 下面是我的代码 public void moveTestCaseUp() { DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode) getTcBuilderTre

我构建了一个动态添加和删除节点的JTree。我有两个按钮,允许所选节点上下移动。该函数工作正常,但一旦向上移动一级,则该节点的选择将消失。我希望用户多次单击该按钮,以使节点到达他希望的位置。因此,请让我知道如何设置节点选择

下面是我的代码

    public void moveTestCaseUp() {
    DefaultMutableTreeNode selectedNode = 
            (DefaultMutableTreeNode) getTcBuilderTree().getLastSelectedPathComponent();
    if (selectedNode != null) {
        DefaultMutableTreeNode parentNode = 
                (DefaultMutableTreeNode) selectedNode.getParent();
        if (parentNode != null) {
            int selectedNodeIndex = selectedNode.getParent().getIndex(selectedNode);
            if (selectedNodeIndex > 0) {
                DefaultTreeModel treeModel = 
                        (DefaultTreeModel) getTcBuilderTree().getModel();
                treeModel.removeNodeFromParent(selectedNode);
                treeModel.insertNodeInto(selectedNode, 
                        parentNode, selectedNodeIndex - 1);
            }
        }
    }
}

为什么不在每次移动后重新选择它呢?另外:请分割长行(>70个字符),这样就不需要水平滚动来读取代码。这使得它更容易阅读,因此增加了人们回答你问题的可能性。我想让这个应用程序更加用户友好。假设有10个以上的节点,并且您希望将最后一个节点移动到索引2,那么让用户反复单击箭头按钮来定位它是不好的。这是另一个问题。您最初的问题是如何在更改拓扑后保持选定节点处于选定状态。