Hi Sven ,
Your button will respond to mouse clicks when you use cellEditor class.
I am sending an example code. Try to use it.
Step 1. Add this below line to your main class.
table.getColumnModel().getColumn(0).setCellEditor(new ButtonEditor(new JCheckBox()));
Step 2. Use this Cell Editor. When Button is clicked getCellEditorValue() method is called. Implement required functionality in that method.
class ButtonEditor extends DefaultCellEditor {
protected JButton button;
private
String label;
private boolean isPushed;
public ButtonEditor(JCheckBox checkBox) {
super(checkBox);
button = new JButton();
button.setOpaque(true);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
fireEditingStopped();
}
});
}
public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected, int row, int column) {
if (isSelected)
{
button.setForeground(table.getSelectionForeground());
button.setBackground(table.getSelectionBackground());
}
else
{
button.setForeground(table.getForeground());
button.setBackground(table.getBackground());
}
label = (value ==null) ? "" : value.toString();
button.setText( label );
isPushed = true;
return button;
}
public Object getCellEditorValue() {
if (isPushed) {
JOptionPane.showMessageDialog(button ,label + ": Ouch!");
}
isPushed = false;
return new String( label ) ;
}
public boolean stopCellEditing()
{
isPushed = false;
return super.stopCellEditing();
}
protected void fireEditingStopped() {
super.fireEditingStopped();
}
}
Hope this helps you.
All The Best.