begin process at 2010 03 21 11:32:16
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Divers

 > 

Débutant(e)

 > 

JTable + Controller


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

JTable + Controller

vendredi 22 février 2008 à 15:16:13 | JTable + Controller

adrienr11vdv

Bonjour à tous ,
je développe une appli avec des JTable mais je rencontre quelques soucis!

j'utilise une classe, connection a la bdd, une classe controller (gère les evenements de la classe Vue) et une classe Vue.

Voici la classe connection:
package Modele;

import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.Vector;

import com.mysql.jdbc.ResultSet;

public class ListeEtudiants {
   
    /**
     *    
     * @throws SQLException
     * @throws SQLException
     */
    private Etudiant etu = new Etudiant();
   

   
    public Vector setColumName(String req) throws SQLException{
       
       
            ResultSet rs = Ressource.dataBase.getRst(req);
            ResultSetMetaData md = rs.getMetaData();
           
            Vector nomColonnes = new Vector();

            int colonnes = md.getColumnCount();
       
            for(int i=1; i<=colonnes; i++){
                nomColonnes.addElement(md.getColumnName(i));
            }
           
            return nomColonnes;
        }
       
        public Vector setData(String req) throws SQLException{
           
            ResultSet rs = Ressource.dataBase.getRst(req);
            ResultSetMetaData md = rs.getMetaData();
            int col = md.getColumnCount();
           
            Vector data = new Vector();
           
            while (rs.next()){
                Vector row = new Vector();
                for (int i=1; i<=col;i++){
                    row.addElement(rs.getObject(i));
                }
                data.addElement(row);
            }
        return data;       
    }
}

Voici la classe controller
package Controller;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import Vue.NewJPanel;

public class Control implements ActionListener {
   
    private NewJPanel  tab;
    public String req;
   
    public Control(NewJPanel tab){
        this.tab = tab;
        tab.getJCheckBox1().addActionListener(this);
        tab.getJCheckBox2().addActionListener(this);
    }
   
    @Override
    public void actionPerformed(ActionEvent act) {
        // TODO Auto-generated method stub
        Object src = act.getSource();
        if (src.equals(tab.getJCheckBox1())){
            if(tab.getJCheckBox1().isSelected() == true){
                System.out.println(" checkbox un est activée !!");
                 req = "SELECT utilisateur.* FROM utilisateur , prof WHERE utilisateur.id_util = prof.id_util_prof order by utilisateur.nom, utilisateur.prenom";
            }else{
                System.out.println(" checkbox un est desactivée !!");
            }
        }
        if (src.equals(tab.getJCheckBox2())){
            if(tab.getJCheckBox2().isSelected() == true){
                System.out.println(" checkbox2 un est activée !!");
                req = "SELECT utilisateur.* FROM utilisateur , etudiant WHERE utilisateur.id_util = etudiant.id_util_etu order by utilisateur.nom, utilisateur.prenom";
            }else{
                System.out.println(" checkbox2 un est desactivée !!");
            }
       
        }
       
    }

}


voici la classe Vue
package Vue;

import java.awt.Dimension;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.Vector;
import javax.swing.JCheckBox;

import javax.swing.WindowConstants;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;

import Controller.Control;
import Modele.ListeEtudiants;

import com.mysql.jdbc.ResultSet;

public class NewJPanel extends javax.swing.JPanel {
    private JScrollPane jScrollPane1;
    private JCheckBox jCheckBox1;
    private JCheckBox jCheckBox2;
    private JTable jTable1;
    private Control control;
    private String req ;

    /**
    * Auto-generated main method to display this
    * JPanel inside a new JFrame.
    */
    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.getContentPane().add(new NewJPanel());
        frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
    }
   
    public NewJPanel() {
        super();
        initGUI();
        control = new Control(this);
    }
   

    private void initGUI() {
        try {
            setPreferredSize(new Dimension(400, 300));
            this.setLayout(null);
            {
                jScrollPane1 = new JScrollPane();
                this.add(jScrollPane1);
                this.add(getJCheckBox1());
                this.add(getJCheckBox2());
                jScrollPane1.setBounds(42, 25, 337, 183);
                {   
                    ListeEtudiants liste = new ListeEtudiants();
                   
                    jTable1 = new JTable(liste.setData(control.req),liste.setColumName(control.req));
                    jScrollPane1.setViewportView(jTable1);
                    jTable1.setPreferredSize(new java.awt.Dimension(334, 150));
                    jTable1.addMouseListener(new MouseAdapter() {
                        public void mouseClicked(MouseEvent evt) {
                            jTable1MouseClicked(evt);
                        }
                    });
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
      
        public JCheckBox getJCheckBox1() {
            if(jCheckBox1 == null) {
                jCheckBox1 = new JCheckBox();
                jCheckBox1.setText("Prof");
                jCheckBox1.setBounds(42, 240, 101, 20);
                jCheckBox1.setSelected(true);
            }
            return jCheckBox1;
        }
       
        public JCheckBox getJCheckBox2() {
            if(jCheckBox2 == null) {
                jCheckBox2 = new JCheckBox();
                jCheckBox2.setText("Etu");
                jCheckBox2.setBounds(211, 240, 121, 20);
            }
            return jCheckBox2;
        }

        public String getReq() {
            return req;
        }
       
}


et voici l'erreur
java.lang.NullPointerException
    at Vue.NewJPanel.initGUI(NewJPanel.java:77)
    at Vue.NewJPanel.<init>(NewJPanel.java:59)
    at Vue.NewJPanel.main(NewJPanel.java:51)

merci d'avance pour votre aide!


Adrien


lundi 25 février 2008 à 10:31:51 | Re : JTable + Controller

uhrand

Tu doit créer control avant initGUI !!!
        control = new Control(this);
        initGUI();


Cette discussion est classée dans : java, public, req, import, newjpanel


Répondre à ce message

Sujets en rapport avec ce message

Gros pb avec JApplet et JPanel [ par jtmarin ] Help, J'ai un gros pb que je ne comprend pas du tout avec JApplet.En gros, si j'ajoute le JPanel au moment de la méthode init(), pas de problème mais JApplet et JPanel [ par jtmarin ] Help, J'ai un gros pb que je ne comprend pas du tout avec JApplet.En gros, si j'ajoute le JPanel au moment de la méthode init(), pas de problème mais Instruction : system.out.println [ par BSide ] Bonjour,voici un exemple de code (je débute) qui me pose des problèmes :import java.util.*;import java.math.*;import java.lang.*;import java Impression du contenu d'un JTextArea sur plusieurs pages [ par criche ] Voici un programme qui me permet d'imprimer le contenu d'un JtextArea.Il est composé du programme essaiJtextArea.java, qui appelle la classe JTextArea probleme avec un applet chat [ par funbidule ] J'ai un probleme avec ce programme il crès bien la fenetre mais n essaie pas de se connecter au serveurQuelqu'un saurait il m aider?package chat;impor applet, swing class et constructeur. [ par nonoz ] bonjour,j'aurais besoin d'un peu d'aide parce que je comprends pas bien ce qu'il faut que je fasse (enfin si faire un constructeur mais ou et comment listener dnas une applet??? [ par nonoz ] Bon je mets ma question ici car je sais pas trop ou la mettre ailleurs... j'essaye d'ajouter un listener sur mes boutons qu'il lorsque l'on clique des Problème rafraichissement image avec Swing [ par ejouvin ] Bonjour.Je suis en train de faire une petite application qui contient une arborescence à gauche et une fenêtre de détail sur la droite.Dans le code su Pb de Collection [ par jesuhsXVII ] J'ai un petit pb, c surement tout bete ... bref Voici le code :package SystemDeFichier;import java.util.*;import java.io.File;public class BoutonNavig newbie question dessiner java [ par anisotrope ] Bonjour a tous.Tout d'abord avant d'exposer mon probleme je voudrais dire que je viens juste de commencer le java donc un peu d'indulgence :=).Voila j


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,499 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales