Pb avec DefaultCellEditor
Bonjour à tous!
J'ai un soucis avec mon defaultCellEditor. J'ai un Jtable qui contient 5 champs, dont 2 sont composé de JCheckbox, et je n'arrive pas à éditer les JCheckbox.
voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
String[] titre_colonnes = {"nom","prenom","adresse","to","cc"};
Object[][] list_complete=new Object [list.length][titre_colonnes.length];
//On crée un nouveau tableau en insérant les composant JCheckbox
//list est un tableau qui contient, le nom, prénom et l'adresse mail des contact
for(int i=0;i<list.length;i++)
{
for(int j=0;j<titre_colonnes.length;j++)
{
if(j==0 || j==1 || j==2)
list_complete[i][j]=list[i][j];
else
list_complete[i][j]=new JCheckBox("");
}
}
modele mon_modele = new modele(list_complete,titre_colonnes);
JTable jTable1 = new JTable(mon_modele);
//on ne permet pas de permutter les colonnes
jTable1.getTableHeader().setReorderingAllowed(false);
jTable1.getColumn("to").setCellRenderer(new checkboxRenderer());
jTable1.getColumn("to").setCellEditor(new checkboxEditor(new JCheckBox()));
jTable1.getColumn("cc").setCellRenderer(new checkboxRenderer());
jTable1.getColumn("cc").setCellEditor(new checkboxEditor(new JCheckBox())); |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class checkboxEditor extends DefaultCellEditor implements ItemListener
{
private JCheckBox button;
public checkboxEditor(JCheckBox checkBox)
{
super(checkBox);
}
public Component getTableCellEditorComponent(JTable table, Object value,boolean isSelected, int row, int column)
{
if (value==null) return null;
button = (JCheckBox)value;
/*cette instruction indique, que lorsqu'il y aura un changement sur le choix
avec le bouton button,la méthode ItemStateChanged de this sera invoquée*/
button.addItemListener(this);
System.out.println("on est dans la fonction getTableCellEditorComponent");
return (Component)value;
}
public Object getCellEditorValue()
{
button.removeItemListener(this);
System.out.println("on est dans la fonction getCellEditorValue");
return button;
}
public void itemStateChanged(ItemEvent e)
{
super.fireEditingStopped();
}
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;
public class checkboxRenderer implements TableCellRenderer
{
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column)
{
if (value==null)
return null;
return (Component)value;
}
} |
Merci d'avance!!!