java - JTree - 添加节点的问题

标签 java jtree

我正在开发一个系统,用于存储参与者可以申请的类(class)。 我在 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);
}

最佳答案

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

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

添加类(class),然后添加注册。总是成双成对。现在我不知道你的数据的结构,但我敢说这不是你想要的。您能否更详细地描述一下 Enrollment 是什么(一个人?一组人员?其他什么?),以及 getParticipant() 返回什么,以及您希望显示什么在树上?

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

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

关于java - JTree - 添加节点的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2891541/

相关文章:

Java getter 带参数?

java - JTextarea 作为 JTree 的节点

java - JTree 中的 JPopupMenu 问题

java - 如何让 JMS 生产者使用 TemporaryQueue 监听消费者返回的响应?

java - 如何将多个 KieModule 部署到单个 KieBase 中

java - 使绿色消失或透明

java - JTree 编辑根节点?

java - Play框架: package javax.注入(inject)不存在

java - scrollPathToVisible 行为不正常

java - 将监听器附加到 JTree