IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Débutant: Conseils pour m'en sortir avec l'oo


Sujet :

Langage Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 62
    Points : 43
    Points
    43
    Par défaut Débutant: Conseils pour m'en sortir avec l'oo
    Bonjour,
    je me suis lancé depuis peu dans java et donc forcément dans l'oo, et la je coince gentillement et a mon avis je m'y prend mal. le but est assez simple, une Jframe qui contient une Jtable dans laquelle apparaisse les données d'une requête Sql.
    Mon problême est que j'ai essayé de modulariser, c'est a dire une classe pour le Jpanel et ses composants, une classe pour la Jframe, une classe pour le TableModel, et une classe pour mon main, le soucis est que je ne vois pas comment attribuer le TableModel a la Jtable de cette manière :/

    la classe du Jpanel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
     
    public class PanelVe extends JPanel{
     
    	private JTable jTable = null;
    	private JScrollPane jScrollPane = new JScrollPane(jTable);
     
    	/**
             * This is the default constructor
             */
    	public PanelVe() {
    		super();
    		initialize();
    	}
     
    	private void initialize() {
    		this.setLayout(null);
    		this.setSize(535, 258);
    		this.add(getJTable(), null);
    	}
     
    	private JTable getJTable() {
    		if (jTable == null) {
    			jTable = new JTable();
    			jTable.setBounds(new java.awt.Rectangle(193,23,320,207));
    		}
    		return jTable;
    	}
    }
    la classe de la JFrame:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    import java.awt.BorderLayout;
    import javax.swing.JPanel;
    import javax.swing.JFrame;
     
    public class frameVe extends JFrame{
     
    	private JPanel jContentPane = null;
    	private PanelVe panelVe1 = null;
     
    	public frameVe() {
    		super();
    		initialize();
    	}
     
     
    	private void initialize() {
    		this.setSize(584, 394);
    		this.setContentPane(getJContentPane());
    		this.setTitle("JFrame");
    	}
     
    	private JPanel getJContentPane() {
    		if (jContentPane == null) {
    			jContentPane = new JPanel();
    			jContentPane.setLayout(new BorderLayout());
    			jContentPane.add(getPanelVe1(), java.awt.BorderLayout.CENTER);
    		}
    		return jContentPane;
    	}
     
    	private PanelVe getPanelVe1() {
    		if (panelVe1 == null) {
    			panelVe1 = new PanelVe();
    		}
    		return panelVe1;
    	}
    }
    la classe de l'AbstractTableModel(je dois encore y surcarger addRows):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    import java.util.Vector;
     
    import javax.swing.table.AbstractTableModel;
     
    public class dbTableModel extends AbstractTableModel{
    	String[] columnName = {"nom","nombre"};
    	private Vector[] data;
     
    	public dbTableModel(){
    		data = new Vector[getColumnCount()];
    		for (int i=0;i<getColumnCount();i++){
    			data[i]= new Vector();
    		}
    	}
     
    	public int getRowCount() {
    		// TODO Auto-generated method stub
    		return data[0].size();
    	}
     
    	public int getColumnCount() {
    		// TODO Auto-generated method stub
    		return data.length;
    	}
     
    	public Object getValueAt(int arg0, int arg1) {
    		// TODO Auto-generated method stub
    		return null;
    	}
    }
    et mon main(ou c'est le bazard mais bon j'essaye):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    import java.sql.SQLException;
    import java.sql.Statement;
     
    public class testVe {
     
    public 	static dbTableModel tableModel = new dbTableModel();
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		frameVe f = new frameVe();
    		f.setVisible(true);
    		String DBurl = "jdbc:odbc:madbei";
    		String sql = "SELECT nom,nombre FROM madbei";
    		Connection con = null;
    		ResultSet résultats = null;
    		ResultSetMetaData rsmd;
    		int nbcols = 0;
    		Statement stmt;
     
    		dbTableModel tableModel = new dbTableModel();
     
    		try {
    			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    		} catch (ClassNotFoundException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
     
    		try {
    			con = DriverManager.getConnection(DBurl);
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		try {
    			stmt = con.createStatement();
    			   résultats = stmt.executeQuery(sql);
    			} catch (SQLException e) {
    			   //traitement de l'exception
    			}
    		try {
    			rsmd = résultats.getMetaData();
    			int nbCols = rsmd.getColumnCount();
    			boolean encore = résultats.next();
    			while (encore) {
    			   for (int i = 1; i <= nbCols; i++)
    			      System.out.print(résultats.getString(i) + " ");
    			   System.out.println();
    			   encore = résultats.next();
    			}
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
    }
    quels sont les modifications que je devrais apporter a cette approche et comment ajouter l'élément dbTableModel a ma Jtable?

    merci de votre aide

  2. #2
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Bonjour,

    Dans ta classe JPanel, tu construis ta JTable avec le constructeur par défaut ( jTable = new JTable() ). En la construisant avec ton TableModel, ca devrait marcher.

Discussions similaires

  1. [MySQL] conseils pour gérer des images avec mysql
    Par briiice dans le forum Administration
    Réponses: 9
    Dernier message: 04/01/2006, 09h52
  2. [Débutant] Conseils pour bien démarrer.
    Par Invité dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 21/12/2005, 14h21
  3. [Débutant] Conseils pour débuter
    Par stip dans le forum Débuter avec Java
    Réponses: 8
    Dernier message: 04/07/2005, 17h01
  4. Réponses: 4
    Dernier message: 22/09/2004, 09h17
  5. Conseils pour developper une application avec Oracle
    Par belugha dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 02/06/2003, 16h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo