有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java为什么我不能将根添加到JTree?

我试着做jtreejt=newjtree(root);运行它,它说

"The constructor JTree(DefaultMutableTreeNode) is undefined".

这是我的代码截图-https://snipboard.io/hwU4b7.jpg

import javax.swing.JFrame;
import javax.swing.tree.DefaultMutableTreeNode;

public class JTreeInfo {

    JFrame frame;
        
    JTreeInfo() {
        frame = new JFrame();   

        DefaultMutableTreeNode root = new DefaultMutableTreeNode("hmtl");
        DefaultMutableTreeNode n1 = new DefaultMutableTreeNode("head");
        DefaultMutableTreeNode n2 = new DefaultMutableTreeNode("body");
        root.add(n1);
        root.add(n2);
        DefaultMutableTreeNode meta = new DefaultMutableTreeNode("meta");
        DefaultMutableTreeNode title = new DefaultMutableTreeNode("title");
        n1.add(meta);
        n1.add(title);
        DefaultMutableTreeNode ul = new DefaultMutableTreeNode("ul");
        DefaultMutableTreeNode hl = new DefaultMutableTreeNode("hl");
        DefaultMutableTreeNode h2 = new DefaultMutableTreeNode("h2");
        n2.add(ul);
        n2.add(hl);
        n2.add(h2);
        DefaultMutableTreeNode li = new DefaultMutableTreeNode("li");
        DefaultMutableTreeNode li2 = new DefaultMutableTreeNode("li");
        ul.add(li);
        ul.add(li2);
        DefaultMutableTreeNode a = new DefaultMutableTreeNode("a");
        h2.add(a);

        JTree jt = new JTree(root); 
        frame.add(jt);
        frame.setSize(500,500);
        frame.setTitle("JTree");
        frame.isVisible(true);
    }

    public static void main(String[] args) {

        new JTreeInfo();

    }
}

共 (1) 个答案

  1. # 1 楼答案

    确保导入的包正确。一个像样的IDE将允许您自动完成这项工作

    还应该将JTree嵌入JScrollPane中,否则会遇到一些有趣的视觉问题

    enter image description here

    import java.awt.EventQueue;
    import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.JTree;
    import javax.swing.tree.DefaultMutableTreeNode;
    
    public class Test {
    
        public static void main(String[] args) {
            new Test();
        }
    
        public Test() {
            EventQueue.invokeLater(new Runnable() {
                @Override
                public void run() {
                    DefaultMutableTreeNode root = new DefaultMutableTreeNode("hmtl");
                    DefaultMutableTreeNode n1 = new DefaultMutableTreeNode("head");
                    DefaultMutableTreeNode n2 = new DefaultMutableTreeNode("body");
                    root.add(n1);
                    root.add(n2);
                    DefaultMutableTreeNode meta = new DefaultMutableTreeNode("meta");
                    DefaultMutableTreeNode title = new DefaultMutableTreeNode("title");
                    n1.add(meta);
                    n1.add(title);
                    DefaultMutableTreeNode ul = new DefaultMutableTreeNode("ul");
                    DefaultMutableTreeNode hl = new DefaultMutableTreeNode("hl");
                    DefaultMutableTreeNode h2 = new DefaultMutableTreeNode("h2");
                    n2.add(ul);
                    n2.add(hl);
                    n2.add(h2);
                    DefaultMutableTreeNode li = new DefaultMutableTreeNode("li");
                    DefaultMutableTreeNode li2 = new DefaultMutableTreeNode("li");
                    ul.add(li);
                    ul.add(li2);
                    DefaultMutableTreeNode a = new DefaultMutableTreeNode("a");
                    h2.add(a);
    
                    JTree jt = new JTree(root);
    
                    JFrame frame = new JFrame();
                    frame.add(new JScrollPane(jt));
                    frame.pack();
                    frame.setLocationRelativeTo(null);
                    frame.setVisible(true);
                }
            });
        }
    }