[clos] jtree and database

Fermé
salmafatmasessi Messages postés 23 Date d'inscription samedi 28 avril 2012 Statut Membre Dernière intervention 28 juin 2012 - 27 juin 2012 à 19:01
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 - 28 juin 2012 à 18:54
Bonsoir à tous :
j'ai un table T1(c1,c2#) c1:clé primaire, c2 clé étrangère .
T2(c2,c3) c2 clé primaire(clé étranger dans T1), c3 clé étrangé
T3(c3,C4) c3 clé primaire(clé étranger dans T2),C4 clé étrangé

j'aime bien afficher dans un jtree ceci :

c1(racine)

|||||--c2
||||||||||--c3
|||||||||||||||||||--C4

||||||--c2'
|||||||||||--c3'
||||||||||||||||||||--c4'

comment j'obtient ceci
mes clé son de type chaine de caractére

je veut afficher rs.getString(2) sous rs.getString(1)
et rs.getString(3) sous rs.getString(2).
comment je peut faire ça avec ce code !!!!

ce code marche bien mais j'aime bien avoir
rs.getString(2) sous rs.getString(1)
et rs.getString(3) sous rs.getString(2)


package fr.unitic.metier;

import java.awt.*;
import java.sql.*;
import java.util.*;

import javax.swing.*;
import javax.swing.tree.*;

public class JTreeStructure extends JFrame {

Connection con = null;
Statement st = null;
ResultSet rs = null;

public static void main(String args[]) throws Exception {
new JTreeStructure();
}

public JTreeStructure() throws Exception {

super("Retrieving data from database ");

String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String url = "jdbc:sqlserver://UNITIC2:1433;DatabaseName=";
String db = "UNIDB_CLITEST";

ArrayList list = new ArrayList();
list.add("Roll Numbers");

Class.forName(driver);
con = DriverManager.getConnection(url + db, "sa", "sql");

try {
String sql = "Select * from import ";

st = con.createStatement();
rs = st.executeQuery(sql);

while (rs.next()) {
Object value[] = { rs.getString(4),rs.getString(1), rs.getString(2),
rs.getString(3) };
list.add(value);
}
} catch (Exception e) {
System.out.println(e);
}
rs.close();
st.close();
con.close();

Object hierarchy[] = list.toArray();

JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container content = getContentPane();

DefaultMutableTreeNode root = processHierarchy(hierarchy);
JTree tree = new JTree(root);
content.add(new JScrollPane(tree), BorderLayout.CENTER);
setSize(275, 300);
setLocation(300, 100);
setVisible(true);
}

private DefaultMutableTreeNode processHierarchy(Object pHierarchy[], Map<String, DefaultMutableTreeNode> pNodes) {
if ( pNodes == null ) {
pNodes = new HashMap<String, DefaultMutableTreeNode>();
}
if ( !pNodes.containsKey(pHierarchy[0])) {
pNodes.put(pHierarchy[0].toString(), new DefaultMutableTreeNode(pHierarchy[0]));

}
DefaultMutableTreeNode node = pNodes.get(pHierarchy[0]);
DefaultMutableTreeNode child = pNodes.get(pHierarchy[1]);
for (int i = 1; i < pHierarchy.length; i++) {
Object nodeSpecifier = pHierarchy[i];
if (nodeSpecifier instanceof Object[]) // Ie node with children
{
child = processHierarchy((Object[]) nodeSpecifier, pNodes);
} else {
child = new DefaultMutableTreeNode(nodeSpecifier); // Ie Leaf



}

node.add(child);
}
System.out.println(node);
return (node);

}
}

3 réponses

cormandyr Messages postés 600 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 8 juillet 2016 11
28 juin 2012 à 07:58
tu es quand meme au courant que c'est ton 4eme messages concernant le meme sujet et pour lequel tu n'apportes rien de nouveau... ce n'est pas en créant de post que la résolution de ton problème ira plus vite...

cfr:
26 juin
23 juin
14 juin
0
salmafatmasessi Messages postés 23 Date d'inscription samedi 28 avril 2012 Statut Membre Dernière intervention 28 juin 2012
28 juin 2012 à 11:54
bonjour,
j'ai lancé mon message dans différentes thème je crois!!
je suis désolé comme même tu peut m'aider @cormandyr svp je suis besoin de ceci dans mon projet si possible bien sûr.
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
28 juin 2012 à 18:54
Salut,

sujet clos. Essayes d'être plus précis, pour répondre à ta question, nous devons nous plonger dans ton code. Si tu avais posé ta question différemment, je n'aurais pas fermé le sujet.

Si personne ne répond, en général, c'est que la question est mal posée...
0
Rejoignez-nous