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

Composants Java Discussion :

Model de table avec vecteur au lieu de table


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 200
    Par défaut Model de table avec vecteur au lieu de table
    bonjour,

    J'utilise dans mon moel de table des vecteurs pour (donneés et entete) au lieu de table a 2 dimenssions, avez vous une idée comment retourner les indices, colonnes, lignes au niveau des methodes implementés?
    voici le code du model:
    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
    /* (non-Javadoc)
    	 * @see javax.swing.table.AbstractTableModel#getValueAt(int, int)
    	 */
    	public Object getValueAt(int arg0, int arg1) {
    		return columnData[rowIndex][columnIndex];
    		//return null;
    	}
     
    	/* (non-Javadoc)
    	 * @see javax.swing.table.AbstractTableModel#getColumnCount()
    	 */
    	public int getColumnCount() {
    		return columnNames.length;
    		//return 0;
    	}
     
    	/* (non-Javadoc)
    	 * @see javax.swing.table.AbstractTableModel#getRowCount()
    	 */
    	public int getRowCount() {
    		return columnData.length;
    		//return 0;
    	}
    voici le code au complet:

    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    /*
     * Created on Apr 5, 2011
     *
     * To change the template for this generated file go to
     * Window>Preferences>Java>Code Generation>Code and Comments
     */
    import java.awt.Color;
    import java.util.Enumeration;
    import java.util.Vector;
    import javax.swing.table.AbstractTableModel;
    import com.ibm.jvm.util.html.Row;
    import java.sql.*;
     
    public class Test3Model extends AbstractTableModel {
     
    	private final Vector columnNames = new Vector();
    	private final Vector columnData = new Vector();
     
    	public Test3Model() {
    		super();
    		getDataList();
    	}
     
    	public void getDataList() {
    		int countRows = 0;
    		String data = "jdbc:odbc:WorldEnergy";
    		try {
    			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    			Connection conn = DriverManager.getConnection(data, "", "");
    			Statement st = conn.createStatement();
     
    			ResultSet rec =
    				st.executeQuery(
    					"SELECT FIPS, Country, Year FROM Coal  "
    						+ "ORDER BY Country");
    			//				if (elementSelected.equals("")){
    			//				 rec =
    			//					st.executeQuery("SELECT FIPS, Country, Year FROM Coal  " +
    			//					"ORDER BY Country");
    			//				}else{
    			//					 rec =
    			//						st.executeQuery("SELECT FIPS, Country, Year FROM Coal  " +
    			//						"WHERE " + 	"(Country = '" + elementSelected + "') " +
    			//						"ORDER BY Country");
    			//				}
     
    			ResultSetMetaData md = rec.getMetaData();
    			columnNames.removeAllElements();
    			int columns = md.getColumnCount();
    			for (int i = 1; i <= columns; i++) {
    				columnNames.addElement(md.getColumnName(i));
    			}
     
    			Enumeration c = columnNames.elements();
    			while (c.hasMoreElements()) {
    				System.out.println("+++++" + c.nextElement());
    			}
     
    			columnData.removeAllElements();
    			while (rec.next()) {
    				countRows++;
    				Vector row = new Vector(columns);
    				for (int i = 1; i <= columns; i++) {
    					row.addElement(rec.getObject((i)));
    				}
    				columnData.addElement(row);
     
    				Enumeration el = columnData.elements();
    				while (el.hasMoreElements()) {
    					System.out.println("-----" + el.nextElement());
    				}
    			}
    			st.close();
     
    		} catch (SQLException s) {
    			System.out.println(
    				"SQL Error: "
    					+ s.toString()
    					+ " "
    					+ s.getErrorCode()
    					+ " "
    					+ s.getSQLState());
    		} catch (Exception e) {
    			System.out.println("Error: " + e.toString() + e.getMessage());
    		}
    	}
     
    	/* (non-Javadoc)
    	 * @see javax.swing.table.AbstractTableModel#getValueAt(int, int)
    	 */
    	public Object getValueAt(int arg0, int arg1) {
    		return columnData[rowIndex][columnIndex];
    		//return null;
    	}
     
    	/* (non-Javadoc)
    	 * @see javax.swing.table.AbstractTableModel#getColumnCount()
    	 */
    	public int getColumnCount() {
    		return columnNames.length;
    		//return 0;
    	}
     
    	/* (non-Javadoc)
    	 * @see javax.swing.table.AbstractTableModel#getRowCount()
    	 */
    	public int getRowCount() {
    		return columnData.length;
    		//return 0;
    	}
     
    }

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Plutôt que de remplir des listes de liste, je te conseille plutôt de créer un objet java représentant une ligne de ta base de données, puis de faire une liste de ces objets.

    La façon de procéder est décrite dans le tutoriel suivant: http://baptiste-wicht.developpez.com...ing/jtable/#L3

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 200
    Par défaut
    sinok,
    Je ne sais pas pourqoui je n'ai pas pensé a utilisé des objets, je vais explorer ce coté la, A propos de ce tutoriel qui explique bien d'ailleurs le principe des JTable, ou est ce que je vais trouver le chapitre 6 qui traite la modification d'elements dans une JTable?
    merci

  4. #4
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/06/2007, 17h43
  2. creation table avec lignes d'une autre table sous Sql Server
    Par pops4 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 25/05/2007, 13h59
  3. Réponses: 4
    Dernier message: 23/10/2006, 09h09
  4. Réponses: 14
    Dernier message: 05/09/2006, 17h01
  5. créer TRIGGER sur 1 table avec liaison sur 2 autre table
    Par shaka84 dans le forum Développement
    Réponses: 2
    Dernier message: 11/04/2006, 11h10

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