Java JTree

cs_noumian Messages postés 49 Date d'inscription samedi 2 avril 2005 Statut Membre Dernière intervention 3 décembre 2008 - 13 avril 2007 à 09:28
cs_noumian Messages postés 49 Date d'inscription samedi 2 avril 2005 Statut Membre Dernière intervention 3 décembre 2008 - 15 avril 2007 à 21:12
Bonjour j'ai un tableau de string :
String mois [] ={"jan","fev"'....,"dec"};
String month []={"january","febuary",...,"december"};

j'ai un JTree que je cree comme ceci :
JTree mon_cal = new JTree(mois);

question: comment a l'aide d'un click sur un boutton (action performed) puis je changer la racine de mon jtree?

ouais man

7 réponses

gmi19oj19 Messages postés 545 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 28 septembre 2011 2
13 avril 2007 à 13:37
Salut,

public void actionPerformed(ActioEvent e) {
    anglais = !anglais;
    if(anglais) mon_cal = new JTree(month);
    else mon_cal = new JTree(mois);
    mon_cal.repaint();
}

A adapter bien entendu si ton actionPerformed est dans une classe anonyme

gmi19oj19
0
gmi19oj19 Messages postés 545 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 28 septembre 2011 2
13 avril 2007 à 13:39
Salut,

J'oubliais :

anglais est un booleen (variable d'nstance) permettant de modifier ta langue^^

Par contre, si le but est seulement de faire une appli multi-langues, jette plutot un oeil du coté de tout ce qi est localisation (classe Locale, cf javadoc et google )

gmi19oj19
0
cs_noumian Messages postés 49 Date d'inscription samedi 2 avril 2005 Statut Membre Dernière intervention 3 décembre 2008
15 avril 2007 à 10:54
desole ca ne marche pas , ma jtree n'est plus fonctionelle,  cad  que  l'ancienne jtree reste afichee sans changement et ne marche plus.
que veux tu dire par classe anonyme? ma classe est : public class lang

( le but n'est pas de faire une appli multi -langues)

ouais man
0
gmi19oj19 Messages postés 545 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 28 septembre 2011 2
15 avril 2007 à 11:23
Salut,

Une classe anonyme, c'est quand tu fais, par exemple

unBouton.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
       //code qui va bien
    }
});

Mets ton code dans son integralit si il n'est pas trop long, ça sera plus facile pour t'aider.

gmi19oj19
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_noumian Messages postés 49 Date d'inscription samedi 2 avril 2005 Statut Membre Dernière intervention 3 décembre 2008
15 avril 2007 à 12:54
ok, en fait c'est pas des langues, jcroyais que ca aurait ete plus rapide  avec un petit exemple
voici en realite ce que je veux faire ,je veux extraire les noms d'une table dans une base de donnees mysql et les mettre dans une jtree.
et jfais aussi un textfield ou je pourrais faire une rechere par Jtextfield.getname et changer ma jtree par un carretlistenner sur mon jtextfield ()
voici la fonction qui creer le jtree :

    private JTree getJTree1() {
        if (jTree1 = = null) {
            try{
                Class.forName("com.mysql.jdbc.Driver");
                Connection cnx = DriverManager.getConnection(url);
                Statement sqlquery = cnx.createStatement();
                ResultSet res = sqlquery.executeQuery("select nom from etudiant");
                DefaultMutableTreeNode etudiant = new DefaultMutableTreeNode("Nom");
                DefaultMutableTreeNode insa = new DefaultMutableTreeNode("Inscrits");
                bank.add(insa);
                while (res.next()){
                    insa.add(new DefaultMutableTreeNode(res.getString(1)));
                }
                jTree1 = new JTree(etudiant);
               cnx.close();
            }
            catch(Exception ex){
                System.out.print("error : "+ex.getMessage());
            }
        }
        return jTree1;
    }

et voici le code sur mon textfield:

private JTextField getLk() {
        if (lk == null) {
            lk = new JTextField();
            lk.addCaretListener(new javax.swing.event.CaretListener() {
                public void caretUpdate(javax.swing.event.CaretEvent e) {
                    String l = lk.getText();
                    try{
                        Class.forName("com.mysql.jdbc.Driver");
                        Connection cnx = DriverManager.getConnection(url);
                        Statement sqlquery = cnx.createStatement();
                        ResultSet res = sqlquery.executeQuery("select nom from bank.client where nom like '"+l+"%' ");
                        DefaultMutableTreeNode eudiant = new DefaultMutableTreeNode("Search");
                        while (res.next()){
                            bank.add(new DefaultMutableTreeNode(res.getString(1)));
                        }
                        jTree1 = new JTree(etudiant);
                        jTree1.repaint();
                        cnx.close();
                    }
                    catch(Exception ex){
                        System.out.print("error : "+ex.getMessage());
                    }
                }
            });
        }
        return lk;
    }

 voila
le premier lancement du programme marche bien, afiche tous les noms des etudiants dans ma base
des que je tape une lettre dans mon textfield , ma requete sql est correcte, mais la jtree ne change pas
voila
help
ouais man
0
gmi19oj19 Messages postés 545 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 28 septembre 2011 2
15 avril 2007 à 17:38
Salut,
C'est izarre que ça compile, normalement ça devrait pas. Ton CaretListener est dans une classe abstraite (cf plus haut) qui ne connait aps ton jTree1... Essaie :

NomDeTaClasse.this.jTree1 = new JTree(etudiant);
NomDeTaClasse.this.jTree1.repaint();

Et vérifie que tu compiles les bons fichiers, parce que ça me parait louche tout ça...

gmi19oj19
0
cs_noumian Messages postés 49 Date d'inscription samedi 2 avril 2005 Statut Membre Dernière intervention 3 décembre 2008
15 avril 2007 à 21:12
si si ,il le connait, les deux methodes sont de la meme clasee dans le meme ficher source
jsuis sous eclipse, s'il ne le connaissait pas,ce devrait signaler

ouais man
0
Rejoignez-nous