All pastes #382045 Raw Edit

Anonymous

public text v1 · immutable
·published 2007-03-05 07:35 UTC
rendered paste body
import 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);
        }
    }