Model – View - Controller
MVC
Les listes
DefaultListModel dlm = new DefaultListModel();
JList liste = new JList(dlm);
dlm.addElement("un");
dlm.addElement("deux");
Aide mémoire
JTable
JTable myTable = new JTable(le modele);
JScrollPane myScrollPane = new JScrollPane(myTable);
JScrollPane myScrollPane = ne...
Le modèle JTable doit implémenter l’interface TableModel
 Deux implémentations existent pour faciliter l’utilisation du
...
int getRowCount() : retourne le nombre de ligne
 int getColumnCount() : retourne le nom de colonne
 Object getValueAt(i...
fireTableDataChanged() : notifie toutes les vues de modifications
fireTableRowsUpdated(int fr, int lr) : notifie entre les...
Méthodes prédéfinies :
• getColumnName() renvoie 'A', 'B', etc.
• getColumnClass() renvoie Object.class.
• isCellEditable(...
GO
class MultTableModel extends AbstractTableModel {
public int getColumnCount() {
return 10;
}
public int getRowCount() {
re...
repertoire = new File(« blbla »)
repertoire.isDirectory()
fichier.exists()
fichier.getName()
fichier.length()
file.lastMod...
public class FileTableModel extends AbstractTableModel {
private final File[] files;
private final static String[] columnN...
Java : SWING aperçus sur les JTable
Upcoming SlideShare
Loading in …5
×

Java : SWING aperçus sur les JTable

2,054 views

Published on

Published in: Technology
  • Be the first to comment

Java : SWING aperçus sur les JTable

  1. 1. Model – View - Controller
  2. 2. MVC
  3. 3. Les listes
  4. 4. DefaultListModel dlm = new DefaultListModel(); JList liste = new JList(dlm); dlm.addElement("un"); dlm.addElement("deux");
  5. 5. Aide mémoire
  6. 6. JTable
  7. 7. JTable myTable = new JTable(le modele); JScrollPane myScrollPane = new JScrollPane(myTable); JScrollPane myScrollPane = new JScrollPane(); myScrollPane.add(myTable); //La JTable n’est pas visible
  8. 8. Le modèle JTable doit implémenter l’interface TableModel  Deux implémentations existent pour faciliter l’utilisation du modèle TableModel (méthodes supplémentaires) : La classe abstraite AbstractTableModel La classe DefaultTableModel
  9. 9. int getRowCount() : retourne le nombre de ligne  int getColumnCount() : retourne le nom de colonne  Object getValueAt(int row, int column) : retourne l’objet pour la cellule  setValueAt(Object, int row, int co) : nouvelle valeur de la cellule Class getColumnClass(int co) : type de la colonne  boolean isCellEditable(int r, int l) : indique si la cellule est modifiable  String getColumnName(int coIn) : nom de la colonne pour coIn  addTableModelListener(TableModelListener) : ajoute un écouteur qui est notifié à chaque fois que le modèle est modifié removeTableModelListener(TableModelListener)
  10. 10. fireTableDataChanged() : notifie toutes les vues de modifications fireTableRowsUpdated(int fr, int lr) : notifie entre les lignes fr et lr fireTableCellUpdated(row,col) : notifie la moification d’une cellule (setValueAt) fireTableRowsInserted(int fr, int lr) : notifie l’insertion de lignes fireTableRowsDeleted(int fr, int lr) : notifie la suppression de lignes fireTableStructureChanged() : le nombre de colonnes, le nom ou le type des colonnes a changé.
  11. 11. Méthodes prédéfinies : • getColumnName() renvoie 'A', 'B', etc. • getColumnClass() renvoie Object.class. • isCellEditable() renvoie toujours faux. • setValueAt() ne fait rien. • Plus la gestion des évènements (add...Listener, fire*). Méthodes à définir : • getRowCount() : le nombre de lignes • getColumnCount() : le nombre de colonnes • getValueAt(int row,int column) : la valeur de la cellule
  12. 12. GO
  13. 13. class MultTableModel extends AbstractTableModel { public int getColumnCount() { return 10; } public int getRowCount() { return 10; } public Integer getValueAt(int row, int column) { return (row+1)*(column+1); } public String getColumnName(int column) { return Integer.toString(column+1); } } .. public static void main(String[] args) { TableModel model=new MultTableModel(); JTable table=new JTable(model); JFrame frame=new JFrame("TreeExample"); frame.setContentPane(new JScrollPane(table)); frame.pack(); frame.setVisible(true); }
  14. 14. repertoire = new File(« blbla ») repertoire.isDirectory() fichier.exists() fichier.getName() fichier.length() file.lastModified() fichier.getAbsolutePath() fichier.renameTo(nouveauFichier) nouveauFichier.delete() repertoire.listFiles()//retourne un tableau de File listeFichiers=repertoire.list(); //retourne tableau de String for (int i = 0; i < listeFichiers.length;i++) System.out.println(listeFichiers[i]);
  15. 15. public class FileTableModel extends AbstractTableModel { private final File[] files; private final static String[] columnNames={"Name","Length","Last modification"}; public FileTableModel(File directory) { files=directory.listFiles(); } public int getColumnCount() { return 3; } public int getRowCount() { File file=files[row]; return files.length; } public String getColumnName(int column) { return columnNames[column]; } public Object getValueAt(int row, int column) { switch(column) { case 0: return file.getName(); case 1: return file.length(); // boxing case 2: return new Date(file.lastModified()); } } }

×