- public class RadioButtonColumn extends AbstractCellEditor
- implements TableCellRenderer, TableCellEditor, ActionListener
- {
- JTable table;
- JRadioButton renderButton;
- JRadioButton editButton;
- String text;
- public RadioButtonColumn(JTable table, int column)
- {
- super();
- this.table = table;
- renderButton = new JRadioButton();
- editButton = new JRadioButton();
- 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 (hasFocus)
- {
- //renderButton.setForeground(table.getForeground());
- renderButton.setForeground(Color.BLUE);
- renderButton.setBackground(table.getBackground());
- }
- else if (isSelected)
- {
- if(renderButton.isSelected())
- {
- renderButton.setSelected(false);
- }
- else
- {
- renderButton.setSelected(true);
- }
- renderButton.setForeground(table.getSelectionForeground());
- renderButton.setBackground(table.getSelectionBackground());
- }
- else
- {
- renderButton.setForeground(table.getForeground());
- renderButton.setBackground(table.getBackground());
- }
- renderButton.setText( (value == null) ? this.text : value.toString() );
- return renderButton;
- }
- public Component getTableCellEditorComponent(
- JTable table, Object value, boolean isSelected, int row, int column)
- {
- text = (value == null) ? this.text : value.toString();
- editButton.setText( text );
- return editButton;
- }
- public Object getCellEditorValue()
- {
- return text;
- }
- public void actionPerformed(ActionEvent e)
- {
- fireEditingStopped();
- System.out.println( e.getActionCommand() + " : " + table.getSelectedRow());
- }
- }
JTable 加入JRadioButton
最新推荐文章于 2008-12-15 15:12:00 发布