
{filelink=3498}
import javax.swing.*;
import javax.swing.table.*;
import java.awt.event.*;
import java.awt.*;
public class JTableColorChooser extends JFrame
{
JTable table;
// L'en-tête de Jtable
String titre[]={"Langage","Type","Couleur"};
// Les valeurs de Jtable
Object [][]valeurs={{"C","Procédural"}
,{"C++","Procédural et Orienté Objet"}
,{"C#","Procédural et Orienté Objet"}
,{"Java","Orienté Objet"}
,{"Perl","Procédural et Orienté Objet"}
,{"PHP","Procédural et Orienté Objet"}
,{"Python","Procédural et Orienté Objet"}};
DefaultTableModel tabModel;
public JTableColorChooser()
{
// Créer un composant JTable
table=new JTable();
// modifier le modèle du composant
table.setModel(new DefaultTableModel(valeurs, titre));
TableColumn colonneAnnee = table.getColumnModel().getColumn(2);
// Ajouter le JColorChooser dans la JTable
colonneAnnee.setCellEditor(new ColorEditor());
// Ajouter le composant dans un JScrollPane
JScrollPane jsp = new JScrollPane(table);
// Ajouter le JScrollPane dans le JFrame
getContentPane( ).add(jsp, BorderLayout.CENTER);
}
public static void main(String [] arg)
{
JTableColorChooser tab= new JTableColorChooser();
tab.setTitle("Ajout d'un JComboBox dans une JTable");
tab.setSize(450,150);
tab.setVisible(true);
}
}
class ColorEditor extends AbstractCellEditor
implements TableCellEditor,
ActionListener {
Color currentColor;
JButton button;
JColorChooser colorChooser;
JDialog dialog;
protected static final String EDIT = "Modifier";
public ColorEditor() {
button = new JButton();
button.setActionCommand(EDIT);
button.addActionListener(this);
button.setBorderPainted(false);
//Configurer la boîte de dialogue à afficher.
colorChooser = new JColorChooser();
dialog = JColorChooser.createDialog(button,
"choisissez une couleur",
true, //modal
colorChooser,
this,
null);
}
public void actionPerformed(ActionEvent e) {
if (EDIT.equals(e.getActionCommand())) {
button.setBackground(currentColor);
colorChooser.setColor(currentColor);
dialog.setVisible(true);
fireEditingStopped();
} else {
currentColor = colorChooser.getColor();
}
}
public Object getCellEditorValue() {
return currentColor;
}
public Component getTableCellEditorComponent(JTable table,
Object value,
boolean isSelected,
int row,
int column) {
currentColor = (Color)value;
return button;
}
}