JTable +Controller

adrienr11vdv Messages postés 99 Date d'inscription jeudi 13 juillet 2006 Statut Membre Dernière intervention 16 avril 2009 - 21 févr. 2008 à 11:35
uhrand Messages postés 491 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 15 juillet 2012 - 25 févr. 2008 à 10:02
bonjour à tous,

j'ai séparer le JTable et les événements associés à celui ci

Voici la classe de création du JTable

public class Tout extends javax.swing.JFrame {
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                Tout inst = new Tout();
                inst.setLocationRelativeTo(null);
                inst.setVisible(true);
            }
        });
    }
   
    public Tout() {
        super();
        initGUI();
        try {
            utilcont = new UtilisateurController(this);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    public JTable getJt_user() throws SQLException {
        System.out.println ("ca passe dans le JTable get_user");        String req "Select utilisateur.* from utilisateur, etudiant where utilisateur.id_util etudiant.id_util_etu order by utilisateur.nom, utilisateur.prenom";
        ListeEtudiants list = new ListeEtudiants();

        jt_user = new JTable(list.setData(req), list.setColumName(req));
        jt_user.setPreferredSize(new java.awt.Dimension(493, 234));

        return jt_user;
    }
}   

bien sur, le tableau est dans un JScrollpane

et voici la classe qui gère les évenements

public class UtilisateurController implements MouseListener, ActionListener{

    private Tout tout;
    private ListeEtudiants maListeEtu;

    public UtilisateurController(Tout tout) throws SQLException {
        this.tout = tout;
        tout.getJb_valider().addMouseListener(this);
        tout.getJt_user().addMouseListener(this);
    }

    @Override
    public void mouseClicked(MouseEvent act) {
        Object src = act.getSource();
        //la source est le bouton valider:
        System.out.println("Ca passe dans le MouseCliked");
        try {
            if (src.equals(tout.getJt_user())){
                System.out.println("Ca passe dans tout.getJt_user");
                String select;
               
                int ligne = tout.getJt_user().getSelectedRow();//Si tu veut la cellule selectionnée, sinon une autre valeur
                int colonne = tout.getJt_user().getSelectedColumn();//Si tu veut la cellule selectionnée, sinon une autre valeur
                Object cellule = tout.getJt_user().getValueAt(ligne,colonne);
               
                select = cellule.toString();
                System.out.println("select :" +select);
            }
        } catch (SQLException e1) {
            System.out.println("erreur !!!");
            e1.printStackTrace();
        }
}

et, en fait, des que je clique sur le tableau rien ne se passe
 merci d'avance pour votre aide

Adrien

1 réponse

uhrand Messages postés 491 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 15 juillet 2012 9
25 févr. 2008 à 10:02
Il ne faut pas mettre le code de création dans la méthode getJt_user, sinon tu crée une nouvelle table à chaque appel !!!
    public JTable getJt_user() {
        return jt_user;
    }

    JButton getJb_valider() {
        return jb_valider;
    }

    private void initGUI() {
        try {
            System.out.println("ca passe dans le JTable get_user");            String req "Select utilisateur.* from utilisateur, etudiant where utilisateur.id_util etudiant.id_util_etu order by utilisateur.nom, utilisateur.prenom";
            ListeEtudiants list = new ListeEtudiants();

            jt_user = new JTable(list.setData(req), list.setColumName(req));
            jt_user.setPreferredSize(new java.awt.Dimension(493, 234));
            add(new JScrollPane(jt_user));
            jb_valider = new JButton("OK");
            add(jb_valider, BorderLayout.NORTH);
        } catch (SQLException e1) {
            System.out.println("erreur !!!");
            e1.printStackTrace();
        }
    }
0
Rejoignez-nous