J'ajoute Jbutton à une table par la classe extendibg AbstractCellEditor. Mais le clic de bouton, le texte ne marche pas de changement « Démarrer » pour « Stop » est .Voici la classe i mis en œuvre Problèmes avec l'ajout de JButton dans la table
public class ButtonEditor1 extends AbstractCellEditor implements
TableCellEditor,ActionListener,TableCellRenderer{
JButton btnSTART = new JButton("START");
private JTable table ;
public ButtonEditor1(JTable table){
this.table = table;
btnSTART.addActionListener(this);
}
public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected, int row, int column) {
return btnSTART;
}
public Object getCellEditorValue() {
// TODO Auto-generated method stub
return btnSTART;
}
public void actionPerformed(ActionEvent e) {
int row = table.getSelectedRow();
if(btnSTART.getText().equals("START")){
if(row != -1){
btnSTART.setText("STOP");
}
}else if(btnSTART.getText().equals("STOP")){
if(row != -1){
btnSTART.setText("START");
}
}
fireEditingStopped();
}
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
return btnSTART;
}
}
ce que je fais mal .. J'ai une classe de modèle qui prend la colonne en tant que JButton et ont remplacé la méthode setValueAt et getValueAt.
Je mets maintenant la valeur String dans le modèle au lieu de button et renderer le titre du bouton ainsi que la méthode actionPerformed() avec cette valeur. – harshit