Bonjour à tous,
Je commence cette série de tuto Java par la présentation d’un JTable qui reste un élément simple à mettre en place. Il est toujours intéressant de pouvoir placer des tableaux dans une application java.
J’ai donc suivi le modèle MVC (Modèle vue Contrôleur), pour l’instant il n’y a que le MV, je rajouterai dans un prochain article le contrôleur.
Je crée d’abord mon Object. Dans mon cas sera un ordinateur avec comme attribut une marque et un prix.
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 | public class Ordinateur { private String marque; private double prix; public Ordinateur(String marque, double prix){ this .marque=marque; this .prix=prix; } public String getMarque() { return marque; } public void setMarque(String marque) { this .marque = marque; } public double getPrix() { return prix; } public void setPrix( double prix) { this .prix = prix; } public static Object[] recupererNomsColonnes(){ Object [] listeColonnes = { "Marque" , "Prix" }; return listeColonnes; } public Object[] recuperDonnees(){ String [] util = new String[ 2 ]; util[ 0 ] = "" +getMarque(); util[ 1 ] = "" +getPrix(); return util; } } |
Ensuite je crée un Object qui reprendra la liste de tous les ordinateurs
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 | import java.util.ArrayList; public class ListOrdinateur { private ArrayList listOrdi; public ListOrdinateur(){ listOrdi = new ArrayList(); } public ListOrdinateur (ArrayListliste){ listOrdi = new ArrayList(); listOrdi.addAll(liste); } public void ajouterJoueur(Ordinateur ordi){ listOrdi.add(ordi); } public void suppLigne( int nbr){ listOrdi.remove(nbr); } public Object [][] recupererDonnees(){ Object[][] contenuListe = new String [listOrdi.size()][ 2 ]; for ( int i= 0 ; i liste){ listOrdi.addAll(liste); } public void affList(){ for ( int i= 0 ; i getArrayListOrdinateur(){ return listOrdi; } } |
Je mets en place le modèle qui permettra de faire le lien avec notre JTable
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 | import javax.swing.table.AbstractTableModel; public class ModeleTableOrdinateur extends AbstractTableModel { private static final long serialVersionUID = 1L; private Object[] nomColonnes; private Object[][] donnees; private ListOrdinateur listeOrdi; public ModeleTableOrdinateur(ListOrdinateur listeOrdinateur){ donnees = listeOrdinateur.recupererDonnees(); nomColonnes = ListOrdinateur.recupererNomsColonnes(); this .listeOrdi=listeOrdinateur; } public int getColumnCount(){ return nomColonnes.length; } public int getRowCount(){ return donnees.length; } public Object getValueAt( int row , int col){ return donnees[row][col]; } public String getColumnName( int col){ return (String) nomColonnes[col]; } public void mettreAjourDonnees(){ donnees= listeOrdi.recupererDonnees(); } public boolean isCellEditable( int row, int col){ return false ; } public void setValueAt(String val, int rowIndex, int columnIndex) { if (val!= null ){ donnees[rowIndex][columnIndex]=val; fireTableCellUpdated(rowIndex,columnIndex); } } } |