Hallo,
ich bin am verzweifeln und ich hoffe mir kann jemand helfen![]()
Folgendes Problem: Ich bekomme aus einer Datenbank Daten geliefert. Dies sind Quizze und diese sind gewissen Themengebieten zugeordnet (im Programm nennt sich dies Ordner). Nun möchte ich im JTree die Quizze zu ihren Themengebieten zuordnen. Dazu werden Ordner erstellt und darin dann die Quizze abgelegt.
Hier mal die wichtigsten Stellen des Quellcodes:
Ich habe folgendes bemerkt: Wenn erst ein neuer Ordner erstellt werden muss um darin dann das Quiz zu speichern, dann funktioniert es. Aber der Fall, dass das Quiz in einen schon existierenden Ordner eingefügt wird, der will nicht klappen.PHP-Code:private JTree tree;
protected DefaultMutableTreeNode root;
protected DefaultTreeModel treeModel;
public MainWindow(Editor owner, int AuthorID) {
// Tree bauen
root = new DefaultMutableTreeNode("alle quizzes");
treeModel = new DefaultTreeModel(root);
tree = new JTree(treeModel);
TreeSelectionModel tsm = new DefaultTreeSelectionModel();
tsm.setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
tree.setSelectionModel(tsm);
tree.setRootVisible(true);
initTree();
}// Konstruktor
private void initTree() {
Quiz help = new Quiz();
String[] files = new String[100];
TreePath tp;
int i = 0;
boolean exist = false;
for (int j=0; j<100; j++)
files[j] = new String("");
while (DbAccess.db_quiz_e(AuthorID)[i] != null) {
help = DbAccess.db_quiz_e(AuthorID)[i];
if (help.Ordner == null) { // falls das Quiz keinem Ordner zugeteilt ist
tp = new TreePath(root);
DefaultMutableTreeNode node;
node = (DefaultMutableTreeNode)tp.getLastPathComponent();
DefaultMutableTreeNode child;
child = new DefaultMutableTreeNode(help.Quiztitel);
treeModel.insertNodeInto(child, node, node.getChildCount());
TreeNode[] path = treeModel.getPathToRoot(node);
tree.expandPath(new TreePath(path));
}
else { // wenn das Quiz einem Ordner zugeteilt ist
for (int j=0; j<100; j++) {
if (files[j].equals(help.Ordner)) {
exist = true;
}// if files
}// for i=0 ->100
if (exist == false){
for (int j=0; j<100; j++){
if (files[j].equals(""))
files[j] = help.Ordner; //Ordner in Liste aufnehmen
break;
}
}// if exist false
tp = new TreePath(root);
DefaultMutableTreeNode folder;
folder = new DefaultMutableTreeNode(help.Ordner);
// Ordner anlegen
if (exist == false){ //wenn Ordner noch nicht existiert
DefaultMutableTreeNode node;
node = (DefaultMutableTreeNode)tp.getLastPathComponent();
treeModel.insertNodeInto(folder, node, node.getChildCount());
}
// Quiz in Ordner einfügen
tp = new TreePath(folder);
DefaultMutableTreeNode node1;
node1 = (DefaultMutableTreeNode)tp.getLastPathComponent();
DefaultMutableTreeNode child;
child = new DefaultMutableTreeNode(help.Quiztitel);
treeModel.insertNodeInto(child, node1, node1.getChildCount());
TreeNode[] path = treeModel.getPathToRoot(node1);
tree.expandPath(new TreePath(path));
}
i++;
}//while (dbAcces)
}// initTree
Erkennt jemand warum?
Schon mal danke für die Hilfe.
Gruß Paule!!!

LinkBack URL
About LinkBacks


Zitieren
Lesezeichen