package fr.orsay.lri.varna.components; import java.awt.Component; import java.awt.Event; import java.awt.event.ActionListener; import java.util.EventObject; import javax.swing.AbstractCellEditor; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JPanel; import javax.swing.JTable; import javax.swing.table.TableCellEditor; public class ActionEditor extends AbstractCellEditor implements TableCellEditor { JButton _btn = new JButton(); public ActionEditor (ActionListener a) { // add all elments you need to your panel _btn.addActionListener(a); } public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int rowIndex, int vColIndex) { _btn.setText(value.toString()); _btn.setActionCommand(value.toString()+"-"+rowIndex); // set all elemnts of you panel to the according values // or add dynamically an action listener return _btn; } public Object getCellEditorValue() { return ""; } public boolean shouldSelectCell(EventObject anEvent) { return super.shouldSelectCell(anEvent); } public boolean isCellEditable(EventObject anEvent) { return super.isCellEditable(anEvent); } public boolean stopCellEditing() { return super.stopCellEditing(); } }