Modifier la couleur d’une cellule de JTable
Dans ce tutoriel nous allons découvrir comment changer la couleur d’une cellule de JTable. Dans le code suivant, nous allons colorer l’arrière-plan d’une cellule lors d’un événement de clic, c’est-à-dire que lorsque vous cliquerez sur la cellule JTable, l’arrière-plan de cette cellule sera bleu. Cette solution est juste pour vous donner une idée de base; vous pouvez le modifier comme vous le souhaitez.

Exemple:
import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.table.*; class JtableColor extends JFrame { private JPanel panel; private JTable table; private JScrollPane scrollPane; private String[] columns = new String[3]; private String[][] data = new String[3][3]; JTextField textBox = new JTextField(); public JtableColor() { //définir le titre de JFrame setTitle("Exemple JTable"); //définir la taille de JFrame setSize(250,250); setDefaultCloseOperation(EXIT_ON_CLOSE); //Créer un panneau panel = new JPanel(); //définir le gestionnaire de disposition panel.setLayout(new BorderLayout()); //ajouter le panneau au frame getContentPane().add(panel); //Header de JTable columns = new String[] {"Colonne 1" ,"Colonne 2", "Colonne 3"}; //données pour JTable dans un tableau 2D data = new String[][] { {"A","D","G"}, {"B","E","H"}, {"C","F","I"} }; //Créer le modéle TableModel model = new myTableModel(); //Créer une table table = new JTable(); //définir la hauteur de ligne table.setRowHeight(40); //définir le modéle table.setModel(model); //récupérer la deuxiéme colonne TableColumn col = table.getColumnModel().getColumn(1); //définir l'éditeur col.setCellEditor(new DefaultCellEditor(textBox)); //activer la selection d'une cellule de JTable table.setCellSelectionEnabled(true); scrollPane = new JScrollPane(table); //ajouter le JTable au panneau panel.add(scrollPane,BorderLayout.CENTER); //Evenements sur une cellule de JTable table.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent e) { textBox.setBackground(Color.BLUE); } }); } public class myTableModel extends DefaultTableModel { myTableModel() { super(data,columns); } public boolean isCellEditable(int row,int cols) { return true; } } public static void main(String args[]) { JtableColor frame = new JtableColor(); frame.setVisible(true); } }
Sortie:

Bonjour,
Je tiens tout d’abord à vous remercier pour vos exemples très explicites.
Cependant, j’ai un problème sur l’exemple « Modifier la Couleur d’une Cellule de JTable » qui ne fonctionne pas après un Copier/Coller dans eclipse du code java proposé.
La frame s’ouvre normalement, mais lorsque je clique au même endroit que l’exemple la cellule ne devient pas « bleue » (idem ailleurs). Etant assez novice dans le domaine je pense qu’il manque quelque chose dans le java proposé mais je ne trouve pas.
Pourriez-vous me guider s’il vous plait.
Merci.
Marc