繁体   English   中英

JTree-添加节点的问题

[英]JTree - Issues with adding of nodes

我正在开发一个系统,该系统存储参与者可以申请的课程。 我正在使用courseadministratorGUI中的JTree展示注册。

我的问题是,每次注册都会添加一个新的courseNode。

尝试了许多小时,希望我现在能得到一些建议,将正确的方向指向我。 谢谢。

    private void updateJTree() {
    for (Category cat : catcontrol.getAllCategoriesList()) {

        category = new DefaultMutableTreeNode(cat);


        for (Course c : ccontrol.getAllCourses()) {

            if (cat.getIdCategory() == c.getIdCategory()) {
                for (Enrollment e : econtrol.getAllEnrollments()) {
                    if (e.getIdCourse() == c.getIdCourse()) {
                        if (cat.getIdCategory() == c.getIdCategory() && e.getCourse().equals(c)) {
                            root.add(category);
                        }

                        if (c.getIdCourse() == e.getIdCourse()) {

                            course = new DefaultMutableTreeNode(c);
                            category.add(course);
                            enrollment = new DefaultMutableTreeNode(e.getParticipant().getFirstNames());
                            course.add(enrollment);

                        }
                    }
                }
            }
        }
    }

    jTree1.setModel(new DefaultTreeModel(root));
    jTree1.addTreeSelectionListener(this);

    jTree1.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
}

我不确定我是否理解这个问题,但是...为什么“对于每个注册,它都会添加一个新的courseNode”? 因为你是在告诉。 就在这儿:

course = new DefaultMutableTreeNode(c);
    category.add(course);
enrollment = new DefaultMutableTreeNode(e.getParticipant().getFirstNames());
    course.add(enrollment);

添加课程,然后添加一个注册。 总是成对出现。 现在我不知道您的数据结构,但我敢说那不是您想要的。 您能否更详细地描述什么是Enrollment (一个人?一个人的名单?其他?),以及getParticipant()返回的结果,以及您想在树中显示什么?

再说一句话-您确实意识到这两个if语句检查同一件事,对吗? 您可以摆脱内在的东西,因为它什么也没做。 或者更有可能重写以做一些有用的事情(但是,正如我所说,我不太确定您要做什么)。

if (e.getIdCourse() == c.getIdCourse()) {
    // ...
    if (c.getIdCourse() == e.getIdCourse()) {

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM