rendered paste bodyimport java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.table.*;
public class ButtonColumn extends AbstractCellEditor
implements TableCellRenderer, TableCellEditor, ActionListener
{
JTable table;
JButton renderButton;
JButton editButton;
String text;
public ButtonColumn(JTable table, int column)
{
super();
this.table = table;
renderButton = new JButton();
renderButton.setText("HELLO");
editButton = new JButton();
editButton.setFocusPainted( true );
renderButton.setForeground(table.getSelectionForeground());
renderButton.setBackground(table.getSelectionBackground());
editButton.addActionListener( this );
TableColumnModel columnModel = table.getColumnModel();
columnModel.getColumn(column).setCellRenderer( this );
columnModel.getColumn(column).setCellEditor( this );
}
public Component getTableCellRendererComponent(
JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
{
if (hasFocus)
{
renderButton.setForeground(table.getForeground());
renderButton.setBackground(UIManager.getColor("Button.background"));
}
else if (isSelected)
{
renderButton.setForeground(table.getSelectionForeground());
renderButton.setBackground(table.getSelectionBackground());
}
else
{
renderButton.setForeground(table.getForeground());
renderButton.setBackground(UIManager.getColor("Button.background"));
}
renderButton.setText( (value == null) ? "" : value.toString() );
return renderButton;
}
public Component getTableCellEditorComponent(
JTable table, Object value, boolean isSelected, int row, int column)
{
//text = (value == null) ? "" : value.toString();
editButton.setText( "Add" );
return editButton;
}
public Object getCellEditorValue()
{
return text;
}
public void actionPerformed(ActionEvent e)
{
//fireEditingStopped();
System.out.println( e.getActionCommand() + " : " + table.getSelectedRow());
table.setValueAt("HELLO",table.getSelectedRow(),1);
}
}