String[] columnNames = { "", "A", "B", "C", "D" };
Object[][] playerData = {
{ "Boot", new Integer(0), new Integer(0), new Integer(0), new Integer(0)},
{ "Auto", new Integer(0), new Integer(0), new Integer(0), new Integer(0)}, };
Object[][] sumData = { { "Summe", new Integer(99), new Integer(99), "", "" } };
DefaultTableModel dmb = new DefaultTableModel(playerData, columnNames);
JTable tableButton = new JTable(dmb)
{
public Class getColumnClass(int column)
{
return getValueAt(0, column).getClass();
}
};
DefaultTableModel dml = new DefaultTableModel(sumData, columnNames);
JTable tableLabel = new JTable(dml) {
public Class getColumnClass(int column) {
return getValueAt(0, column).getClass();
}
};
....
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.AbstractCellEditor;
import javax.swing.JButton;
import javax.swing.JTable;
import javax.swing.UIManager;
import javax.swing.table.TableCellEditor;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumnModel;
class ButtonColumn extends AbstractCellEditor implements TableCellRenderer,
TableCellEditor, ActionListener
{
JTable table;
JButton renderButton;
JButton editButton;
String text;
int Zahl;
public ButtonColumn(JTable table, int column)
{
super();
this.table = table;
renderButton = new JButton();
editButton = new JButton();
editButton.setFocusPainted(false);
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 (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(text);
return editButton;
}
// Gibt Text für JButton zurück
public Object getCellEditorValue()
{
return text;
}
/* (non-Javadoc)
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
*/
int setValueAt( String eingabe, int rowIndex, int columnIndex )
{
return 11;
}
int setValueAt( int neuerWert, int rowIndex, int columnIndex )
{
return neuerWert;
}
public void actionPerformed(ActionEvent e)
{
fireEditingStopped();
// Schreibt Text auf Konsole
//System.out.println("Führe Aktion durch für " + e.getActionCommand());
// liefert die Zeile zurück, in der der Button ist
int row = table.getSelectedRow();
System.out.println(row);
if (e.getActionCommand().equals("Boot"))
{
System.out.println("Boot");
setValueAt( "1111", 0, 2 )
}
if (e.getActionCommand().equals("Auto"))
{
System.out.println("Auto");
}
}
}