Extrait du cours cours interface graphique en java 1.6 tables
Les acteurs
●JTable: la vue graphique
●TableModel: le modèle de données des cellules
●TableColumnModel: le modèle gérant les colonnes (titre, position, sélection, …)
●JTableHeader: rendu des en-têtes de colonnes
Créer une table
● plusieurs constructeurs:
–JTable (Table Modeltm,Table Column Model tcm, List Selection Model lsm);
– JTable (TableModel tm);
– JTable (Table Model tm,Table Column Model tcm);
– JTable(int rows,int columns);
– JTable(Object[][] row Data, Object[] column Names);
Les titres de colonnes
● n’apparaissent que si l’on met la JTable dans un JScrollPane:
private static Component createFileTable1() {
String[][] cells=new String[][]{
{« alpha », »A »},{« beta », »B »},
{« gamma », »C »},{« delta », »D »}};
String[] names=newString[]{« Greek », »Latin »};
JPanel p=new JPanel (new Grid Layout(2,1));
JPanel up=new JPanel (new Border Layout());
up.set Border(Border Factory.create Titled Border(
« No scroll pane, no headers »));
up.add(newJTable (cells,names));
p.add(up);
JPanel down=newJPanel(new Border Layout());
down.setBorder(BorderFactory.createTitledBorder(
« Visible column headers »));
down.add(newJScrollPane(newJTable(cells,names)));
p.add(down);
returnp;
}
Le TableModel
● ses méthodes:
– int getRowCount()
– int getColumnCount()
– Object getValueAt(int row,int column)
– String getColumnName(int column)
– Class<?> getColumnClass(int column)
– boolean isCellEditable(int row,int column)
– void setValueAt(Object value,int row,int column)
Le FileTableModel
● on crée une table à trois colonnes:
public classFileTableModel extendsAbstractTableModel {
privateFile[] files;
private staticString[] columnNames=newString[]{« Name », »Date », »Size »};
publicFileTableModel(File directory) {
if(directory==null|| !directory.isDirectory()) {
throw newIllegalArgumentException(« FileTableModel requires a directory »);
}
files=directory.listFiles();
}
@Override
public intgetColumnCount() {
return columnNames.length;
}
@Override
public intgetRowCount() {
return files.length;
}
…
}
Redimensionner les colonnes
● 5 modes possibles à définir avec setAutoResizeMode:
TableColumn
● plus généralement, le TableColumnModel gère des TableColumn contenant:
– l’indexcorrespondant dans le modèle
– une largeur
– un éditeur
– un renderer
TableColumn(int modelIndex,
int width,
TableCellRenderer cellRenderer,
TableCellEditor cellEditor)
……..
Si le lien ne fonctionne pas correctement, veuillez nous contacter (mentionner le lien dans votre message)
Cours interface graphique en java 1.6 tables (860 KO) (Cours PDF)