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

Author:

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:

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

Leave a Reply

Your email address will not be published. Required fields are marked *