import java.awt.Container;
import java.util.Hashtable;import javax.swing.*;public class JTreeDemo extends JFrame{
Container con=this.getContentPane();
JTree jt;
public JTreeDemo(){
Hashtable a=new Hashtable();
String []str={"Hello","The","World"};
a.put("Test1",a);/*这句不懂,第二个a应该是没put前的a啊 可是程序运行的结果是Test1节点下嵌套Test1 我以为只有一个Test1 节点 */
System.out.println(a.hashCode());
jt=new JTree(a);
con.add(jt);
this.setDefaultCloseOperation(3);
this.setBounds(100,100,400,400);
this.setVisible(true);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new JTreeDemo();
}}不明白!

解决方案 »

  1.   

    我以为 会只有一个节点 Test1
      

  2.   

    import java.awt.Container;
    import java.util.Hashtable;import javax.swing.*;public class JTreeDemo extends JFrame{
        Container con=this.getContentPane();
        final JTree jt;
        public JTreeDemo(){
            Hashtable a= new Hashtable();
            String []str={"Hello","The","World"};
            Hashtable b = new Hashtable();
            b.put("Test2", str);
            b.put("Test4", str);
            a.put("Test1",str);//这里不能是a.put("",a),自己put自己当然是一个无穷无尽的死循环啊
            a.put("Test3", b);
            System.out.println(a.hashCode());
            jt=new JTree(a);       
            jt.setRootVisible(true);        
            con.add(jt);
            this.setDefaultCloseOperation(3);
            this.setBounds(100,100,400,400);
            this.setVisible(true);
        }
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            new JTreeDemo();
        }}