已有259人关注
各位老铁帮我瞅瞅啥问题
发表在Java答疑区 2017-10-23 悬赏:2 学分
是否精华
版块置顶:

btn1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                Enumeration<?> enumeration;
                String model = e.getSource().toString();
                if (model.equals("按前序遍历")) {
                    enumeration = root.preorderEnumeration();
                } else if (model.equals("按后序遍历")) {
                    enumeration = root.postorderEnumeration();
                } else if (model.equals("以广度优先遍历")) {
                    enumeration = root.breadthFirstEnumeration();
                } else if (model.equals("以深度优先遍历")) {
                    enumeration = root.depthFirstEnumeration();
                } else {
                    enumeration = root.children();// 遍历该节点的子节点
                }
                while(enumeration.hasMoreElements()) {//遍历节点枚举对象
                    DefaultMutableTreeNode node;//获得节点
                    node=(DefaultMutableTreeNode) enumeration.nextElement();
                    //根据节点级别输出占位符
                    for (int i = 0; i < node.getLevel(); i++) {
                        System.out.print("----");
                    }
                    System.out.println(node.getUserObject());
                }
            }
        });
    }

我对书上的代码进行了填充,预期效果是所有节点都可以遍历出来,结果只是遍历了第一级的节点,是我代码有错误还是哪里理解有偏差?

分享到:
精彩评论 2
根号申
学分:4736 LV12
TA的每日心情
2021-07-16 23:48:46
2017-10-24
沙发

应该是错在所有的if判断都是false,导致执行最后一个else,也就是遍历该接点的子节点。

我是小才
学分:615 LV6
2017-10-24
板凳

根号申 发表于2017-10-24 10:50

应该是错在所有的if判断都是false,导致执行最后一个else,也就是遍历该接点的子节点。

搞定了,谢谢老师。这块写错了(String model = e.getSource().toString();),我想读出按钮的文本内容,可是找不到getText()方法,原因是我没有转换数据类型,把触发事件的监听Object类型强转为JButton类型就搞定了。

首页上一页 1 下一页尾页 2 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照