Hallo,
ich benutze Netbeans und habe einen jTree auf meiner Gui. Als Standard Knoten sind dort colors,sports und food eingetragen. Es ist mir leider nichtmöglich diese zu ändern durch meinen Code. Es bleiben weiterhin diese Knoten da. Kann mir jemand sagen wie ich diese veränder?? Hier mein Code:
Code:
DefaultMutableTreeNode Project = null;
DefaultMutableTreeNode Build = null;
String url = "jdbc:postgresql://localhost:5432/QualityDB"
+ "?user=postgres&password=xxxx";
String query = "SELECT project.project_id,project.project_name FROM project INNER JOIN site ON project.site_id = site.site_id INNER JOIN benutzer ON site.site_id = benutzer.site_id Where (benutzer.benutzer_name = 'Benni')";
try
{
Class.forName("org.postgresql.Driver");
Connection conn = DriverManager.getConnection(url);
stmt = conn.createStatement();
result = stmt.executeQuery(query);
/* daten durchlaufen */
while (result.next())
{
DefaultMutableTreeNode top = new DefaultMutableTreeNode(result.getString(2) );
jLabel1.setText(result.getString(2));
final JTree tree = new JTree(top);
DefaultMutableTreeNode build = new DefaultMutableTreeNode( "Clubs" );
top.add(build);
}
}
catch (Exception e)
{
jLabel1.setText("Fehler: " + e.getMessage());
}
}
Na dann wollen wir doch mal auf Fehlersuche gehen:
0. Variablennamen klein schreiben
1. Deine DefaultMutableTreeNode s sehen irgendwie komisch aus. Project wird so wie es aussieht gar nicht verwendet und Build wird pro Schleifendurchlauf neu erzeugt. Bau dir doch zum Testen einen simplen Baum und füg den hinzu:
Code:
public TreeNode buildTree(){
DefaultMutableTreeNode root = new DefaultMutableTreeNode("root");
DefaultMutableTreeNode a = new DefaultMutableTreeNode("a");
DefaultMutableTreeNode b = new DefaultMutableTreeNode("b");
DefaultMutableTreeNode c = new DefaultMutableTreeNode("c");
root.add(a);
root.add(b);
root.add(c);
return root;
}
Also, Danke erstmal für die Antwort!Ich hatte vor als Root Knoten meine ganzen Projekte einzutragen und diese haben einzelne Builds, die dann als unterknoten eingetragen werden sollen. Das heisst ich habe mehrere Projekte die aus vielen verschiedenen Builds bestehen und das möchte ich in meinem Tree widerspiegeln.
Ich wollte mit meinem Code also in dem Root node (in diesem Fall nicht Project sondern top) ersteinmal nur versuchen alle Projecte einzutragen!
Ich habe es jetzt hinbekommen das er etwas einträgt, aber nur das letzte projekt der abfrage...wie kann ich es machen das er alle einträgt hintereinander?Mein Code:
Code:
DefaultMutableTreeNode project = null;
// DefaultMutableTreeNode build = null;
String url = "jdbc:postgresql://localhost:5432/QualityDB"
+ "?user=postgres&password=xxxx";
String query = "SELECT project.project_id,project.project_name FROM project INNER JOIN site ON project.site_id = site.site_id INNER JOIN benutzer ON site.site_id = benutzer.site_id Where (benutzer.benutzer_name = 'Benni')";
try
{
Class.forName("org.postgresql.Driver");
Connection conn = DriverManager.getConnection(url);
stmt = conn.createStatement();
result = stmt.executeQuery(query);
/* daten durchlaufen */
while (result.next())
{
DefaultMutableTreeNode root = new DefaultMutableTreeNode("root");
DefaultMutableTreeNode build = new DefaultMutableTreeNode( result.getString(2) );
root.add(build);
jTree1.setModel(new DefaultTreeModel( root ));
}
}
catch (Exception e)
{
jLabel1.setText("Fehler: " + e.getMessage());
}
}
Hallo, ich habe jetzt alles hinbekommen mit den SQL Statements. Ich habe auch eine schleife geschrieben, damit er alle Äste nacheinander in den Baum einträgt. er trägt aber nur immer den letzten ein!Kann mir da jemand weiterhelfen???
Code:
try
{
Class.forName("org.postgresql.Driver");
Connection conn = DriverManager.getConnection(url);
stmt = conn.createStatement();
result = stmt.executeQuery(query);
/* daten durchlaufen */
while (result.next())
{
DefaultMutableTreeNode root = new DefaultMutableTreeNode("root");
DefaultMutableTreeNode Project = new DefaultMutableTreeNode( result.getString(2) );
project_id = result.getString(1);
root.add(Project);
jTree1.setModel(new DefaultTreeModel( root ));
jTree1.setRootVisible(false);
String query2 = "SELECT build.build_id,build.build_name FROM build INNER JOIN project ON build.project_id = project.project_id WHERE (project.project_id = "+project_id+")";
stmt2 = conn.createStatement();
result2 = stmt2.executeQuery(query2);
while (result2.next())
{
DefaultMutableTreeNode Build = new DefaultMutableTreeNode(result2.getString(2));
Project.add(Build);
}
}
}
catch (Exception e)
{
jLabel1.setText("Fehler: " + e.getMessage());
}