Accès d'une variable d'une autre classe

Fermé
Kilkenny95 Messages postés 157 Date d'inscription lundi 24 septembre 2018 Statut Membre Dernière intervention 31 août 2020 - 4 mars 2019 à 12:56
Bonjour à tous,

J'aimerai trier une Jtable trier en fonction du mot sur lequel on clique avec la souris sur ma Jtree.
Le trie marche correctement lorsque je rentre un mot a chercher. Mais mtn j'aimerai que cette recherche se fasse automatiquement au clique d'un mot de la Jtree.

Je n'arrive pas du tout, à partir de ma classe de trie "RowFilterUtil", à acceder à ma variable txt qui récupère le dernier composant de mon jtree sélectionné.

Je ne sais d'ailleurs pas du tout comment programmer le fait que je veuille utiliser ce "txt" pour trier mon jtable...Si quelqu'un pouvait m'aider...Merci

Ma classe de trie :



public class RowFilterUtil {

    public static JTextField createRowFilter(JTable jTable) {
        RowSorter<? extends TableModel> rs = jTable.getRowSorter();
        if (rs == null) {
            jTable.setAutoCreateRowSorter(true);
            rs = jTable.getRowSorter();
        }

        TableRowSorter<? extends TableModel> rowSorter = (rs instanceof TableRowSorter) ? (TableRowSorter<? extends TableModel>) rs : null;

        if (rowSorter == null){
            throw  new RuntimeException("imtrouvabler : " + rs);
        }

        final JTextField tf = new JTextField(15);
        tf.getDocument().addDocumentListener(new DocumentListener() {
            @Override
            public void insertUpdate(DocumentEvent e) {
                update(e);
            }

            @Override
            public void removeUpdate(DocumentEvent e) {
                update(e);
            }

            @Override
            public void changedUpdate(DocumentEvent e) {
                update(e);
            }

            private void update(DocumentEvent e){

                String texte = tf.getText();


                if (texte.trim().length()==0){
                    rowSorter.setRowFilter(null);

                }

                else {
                    rowSorter.setRowFilter(RowFilter.regexFilter("(?i)"+texte));
                }
            }
        });
        return tf;
    }



Ma classe de mon arbre :



public void JTreebdd() {


DefaultMutableTreeNode racine = new DefaultMutableTreeNode("bdd MSPIFM");
DefaultMutableTreeNode grosVolume = new DefaultMutableTreeNode("Gros volume");
DefaultMutableTreeNode gv1 = new DefaultMutableTreeNode(" GV-1");
DefaultMutableTreeNode gv2 = new DefaultMutableTreeNode(" GV-2");
DefaultMutableTreeNode gv3 = new DefaultMutableTreeNode(" GV-3");
DefaultMutableTreeNode gv4 = new DefaultMutableTreeNode(" GV-4");
DefaultMutableTreeNode gv1_E1 = new DefaultMutableTreeNode("E1_gv");
DefaultMutableTreeNode gv1_E2 = new DefaultMutableTreeNode("E2_gv");
DefaultMutableTreeNode gv1_E3 = new DefaultMutableTreeNode("E3_gv");
DefaultMutableTreeNode gv1_E4 = new DefaultMutableTreeNode("E4_gv");
DefaultMutableTreeNode boite1_E1_GV = new DefaultMutableTreeNode("Boite 1");
DefaultMutableTreeNode carteA = new DefaultMutableTreeNode("Carte A");
DefaultMutableTreeNode piecesA = new DefaultMutableTreeNode("Pièces A");

carteA.add(piecesA);
boite1_E1_GV.add(carteA);
gv1_E1.add(boite1_E1_GV);
gv1.add(gv1_E1);
gv1.add(gv1_E2);
gv1.add(gv1_E3);
gv1.add(gv1_E4);
grosVolume.add(gv1);
grosVolume.add(gv2);
grosVolume.add(gv3);
grosVolume.add(gv4);
racine.add(grosVolume);

DefaultMutableTreeNode salleCablage = new DefaultMutableTreeNode("Salle de cablâge");
DefaultMutableTreeNode sc1 = new DefaultMutableTreeNode(" SC-1");
DefaultMutableTreeNode sc1_E1 = new DefaultMutableTreeNode("E1_sc");
DefaultMutableTreeNode boite1_E1_SC = new DefaultMutableTreeNode("Boite 1");
DefaultMutableTreeNode carteB = new DefaultMutableTreeNode("Carte B");
DefaultMutableTreeNode piecesB = new DefaultMutableTreeNode("Pièces B");

carteB.add(piecesB);
boite1_E1_SC.add(carteB);
sc1_E1.add(boite1_E1_SC);
sc1.add(sc1_E1);
salleCablage.add(sc1);
racine.add(salleCablage);


JTree arbre = new JTree(racine);


JScrollPane scroll = new JScrollPane(arbre);

getContentPane().add(scroll);

this.setVisible(true);




arbre.addTreeSelectionListener(new TreeSelectionListener() {
@Override
public void valueChanged(TreeSelectionEvent e) {
System.out.println(arbre.getLastSelectedPathComponent());

TreeSelectionModel smd = arbre.getSelectionModel();
if(smd.getSelectionCount()>0){

DefaultMutableTreeNode parent = (DefaultMutableTreeNode) arbre.getLastSelectedPathComponent();
nomAddedNode.setText(parent.getUserObject().toString());

}

addNode.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource()==addNode){
DefaultMutableTreeNode parent = (DefaultMutableTreeNode) arbre.getLastSelectedPathComponent();
DefaultMutableTreeNode nouveau = new DefaultMutableTreeNode(nomAddedNode.getText());
parent.add(nouveau);

//Reload Jtree

DefaultTreeModel model = (DefaultTreeModel) arbre.getModel();
model.reload();

}

removeNode.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource()==removeNode){

DefaultMutableTreeNode parent = (DefaultMutableTreeNode) arbre.getLastSelectedPathComponent();
if (parent != arbre.getModel().getRoot()) {
DefaultTreeModel model = (DefaultTreeModel) arbre.getModel();
model.removeNodeFromParent(parent);
model.reload();
}
}
}
});

}

}); }
});

String txt = (String)arbre.getLastSelectedPathComponent();

}