0

参加者が申し込めるコースを保存するシステムを開発しています。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);
}
4

1 に答える 1

1

質問を理解しているかどうかはわかりませんが...なぜ「登録ごとに新しいcourseNodeを追加する」のですか? と伝えているからです。ここに:

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

コースを追加してから、登録を追加します。いつもペアで。あなたのデータの構造はわかりませんが、それはあなたが望んでいるものではありません。Enrollment何が (1 人? 人のリスト? 他の何か?) とは何か、何getParticipant()が返されるのか、ツリーに何を表示したいのか、より詳細に説明できますか?

もう 1 つコメントします。これら 2 つのifステートメントが同じことをチェックしていることに気付きましたよね? 何もしないので、内側のものを取り除くことができます。または、何か役に立つことを行うために書き直す可能性が高いです (ただし、前述したように、あなたが何をしたいのかよくわかりません)。

if (e.getIdCourse() == c.getIdCourse()) {
    // ...
    if (c.getIdCourse() == e.getIdCourse()) {
于 2010-05-23T11:51:01.297 に答える