gpt4 book ai didi

java - JTree - 添加节点的问题

转载 作者:行者123 更新时间:2023-12-01 16:04:36 25 4
gpt4 key购买 nike

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com