public Class getColumnClass(int column)Java détermine si vous avez spécifier un moteur de rendu de JTable ou pas, sinon JTable invoque le modèle et appelle la méthode getColumnClass() qui récupère le type de la cellule dans la première ligne. Ensuite, elle le compare avec une liste de types de données dans laquelle les rendus sont enregistrés. Cette liste est initialisée par JTable, mais vous pouvez ajouter ou modifier. Parmi les rendus on trouve ImageIcon et Icon.
{
return getValueAt(0, column).getClass();
}
import javax.swing.*;Résultat après exécution:
import javax.swing.table.*;
public class Table_image extends JFrame
{
public Table_image()
{
ImageIcon icone1 = new ImageIcon("1.png");
ImageIcon icone2 = new ImageIcon("2.png");
ImageIcon icone3 = new ImageIcon("3.png");
ImageIcon icone4 = new ImageIcon("4.png");
String[] Titre = {"Système d'exploitation", "Popularité"};
Object[][] data =
{
{icone1, "Android: 76.6%"},
{icone2, "IOS: 19.7%"},
{icone3, "Windows Phone: 2.8%"},
{icone4, "BlackBerry OS: 1%"},
};
DefaultTableModel modele = new DefaultTableModel(data, Titre);
JTable table = new JTable( modele )
{
/*détection automatique des types de données
*de toutes les colonnes
*/
public Class getColumnClass(int colonne)
{
return getValueAt(0, colonne).getClass();
}
};
//modifier l'hauteur des lignes
table.setRowHeight(100);
JScrollPane scrollPane = new JScrollPane( table );
getContentPane().add( scrollPane );
}
public static void main(String[] args)
{
Table_image frame = new Table_image();
frame.setDefaultCloseOperation( EXIT_ON_CLOSE );
frame.pack();
frame.setVisible(true);
}
}
class Modele extends AbstractTableModel{Lisez davantage sur les éditeurs et les rendus sur le site officiel de java: Editors and Renderers.
private Object[][] data;
private String[] title;
public Modele(Object[][] data, String[] title){
this.data = data;
this.title = title;
}
public Class getColumnClass(int column)
{
return getValueAt(0, column).getClass();
}
public int getColumnCount() {
return this.title.length;
}
public int getRowCount() {
return this.data.length;
}
public Object getValueAt(int row, int col) {
return this.data[row][col];
}
}
Please disable your ad blocker and refresh the window to use this website.