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