Digg StumbleUpon LinkedIn YouTube Flickr Facebook Twitter RSS Reset

Swing: Ajout des JColorChooser dans une JTable à l’aide de la classe ‘AbstractCellEditor’

classe, list, list, set, java, swing, awt, JFrame, table
{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;
    }
                                    }

A Voir sur le même Sujet:

  • calendrier couleur
  • navigateur internet
  • currentColor en java
  • JframeTransfert
  • mettre un commentaire dans un Jtable
  • jtable jcolorchooser
  • utiliser un jcolorchooser dans une jtable
  • plannng
  • JTable
  • exemple de filtrage en jframe