Académique Documents
Professionnel Documents
Culture Documents
Modèles de table
• Les cellules sont toutes éditables.
Les données sont accessibles par un modèle. Ils
peuvent être stockés ou calculés, de façon
• Les types de données sont traités tous de
transparente. façon automatique.
La classe AbstractTableModel implémente les • Les cellules sont remplies avec les données d’un
méthodes d’un modèle de table, qui retournent tableau, ce qui ne pas être approprié.
respectivement le nombre de lignes ,le nombre de
colonnes,l’objet à afficher dans les ligne et Pour éviter ces problèmes, il faut passer par un
colonne indiquées (sa méthode toString est modèle.
utilisée).
Création d’un modèle de table
public int getRowCount()
public int getColumnCount() Pour obtenir la même table que précédemment
public Object getValueAt(int ligne, int colonne) nous pourrions définir la classe :
D’autres méthodes:
public class MonModele extends
public String getColumnName(int col) AbstractTableModel {
Object donnees[][];
String titres[];
boolean isCellEditable(int row, int col) public MonModele(Object donnees[][], String
titres[]) {
public void setValueAt(Object aValue, int this.donnees = donnees; this.titres = titres;
row, int column) // modifier le contenu }
d’une cellule
ENI Dr RV p2
Puis écrire :
MonModele mm = new
MonModele(donnees, titreColonnes);
JTable jTable2 = new JTable(mm);
JScrollPane ScrollPane2 = new
JScrollPane(jTable2);
add (ScrollPane2) ;
EXEMPLE 2
Pour obtenir une table contenant le triangle
de Pascal, nous pourrions définir la classe : import javax.swing.*;
import javax.swing.table.*;
public class MonModelePascal extends import javax.swing.event.*;
AbstractTableModel { import java.awt.*;
import java.awt.event.*;
public MonModelePascal() { import java.sql.*;
} import java.io.*;
public int getColumnCount() { import java.util.*;
return 10;
} public class Jtablebd extends JFrame {
public int getRowCount() {
return 10; static Connection con=null;
} static Statement statement = null;
public String getColumnName(int col){ static ResultSet rescli =null;
return ""; static ResultSet rescom =null;
} static ResultSetMetaData metaData;
public Object getValueAt(int parm1, int parm2) { static JTextField zoneSolde,zoneMontant ;
if(parm1==0) static double TotalSolde=0 ;
if( parm2==0) return "1"; else return ""; static double TotalMontant=0 ;
else
if(parm2>parm1) return ""; // DONNEES POUR JTABLE 1
else if (parm2==parm1) return "1";
else public Object[][] cellules1 = {
if (parm2==0) return "1"; { "Mercure", new Double(2440), new Integer(0),
else{ "non"},
int i = Integer.parseInt( { "Vénus", new Double(6052), new Integer(0),
(String)getValueAt(parm1-1, "non"},
parm2-1)); { "Terre", new Double(6378), new Integer(1),
int j = Integer.parseInt( "non"},
(String)getValueAt(parm1-1, { "Mars", new Double(3397), new Integer(2),
parm2)); "non"},
ENI Dr RV p3
metaData = rescom.getMetaData();
numberOfColumns =
metaData.getColumnCount(); Comment colorier des colonnes de Jtable
columnNames2 = new String[numberOfColumns];
ENI Dr RV p5
if(column == 0)
component.setBackgroun
d(Color.yellow);
if(column == 1)
component.setBackground(Color.red);
return component;
}
};
JScrollPane scroll=new JScrollPane(table);