JTable 加入JRadioButton

  1. public class RadioButtonColumn extends AbstractCellEditor
  2.         implements TableCellRenderer, TableCellEditor, ActionListener
  3.     {
  4.         JTable table;
  5.         JRadioButton renderButton;
  6.         JRadioButton editButton;
  7.         String text;
  8.         public RadioButtonColumn(JTable table, int column)
  9.         {
  10.             super();
  11.             this.table = table;
  12.             renderButton = new JRadioButton();
  13.             editButton = new JRadioButton();
  14.             editButton.setFocusPainted( false );
  15.             editButton.addActionListener( this );
  16.             TableColumnModel columnModel = table.getColumnModel();
  17.             columnModel.getColumn(column).setCellRenderer( this );
  18.             columnModel.getColumn(column).setCellEditor( this );
  19.         }
  20.         public Component getTableCellRendererComponent(
  21.             JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
  22.         {
  23.             if (hasFocus)
  24.             {
  25.                 //renderButton.setForeground(table.getForeground());
  26.                 renderButton.setForeground(Color.BLUE);
  27.                 renderButton.setBackground(table.getBackground());
  28.             }
  29.             else if (isSelected)
  30.             {
  31.                 if(renderButton.isSelected())
  32.                 {
  33.                     renderButton.setSelected(false);
  34.                 }
  35.                 else
  36.                 {
  37.                     renderButton.setSelected(true);
  38.                 }
  39.                 renderButton.setForeground(table.getSelectionForeground());
  40.                  renderButton.setBackground(table.getSelectionBackground());
  41.             }
  42.             else
  43.             {
  44.                 renderButton.setForeground(table.getForeground());
  45.                 renderButton.setBackground(table.getBackground());
  46.             }
  47.             renderButton.setText( (value == null) ? this.text : value.toString() );
  48.             return renderButton;
  49.         }
  50.         public Component getTableCellEditorComponent(
  51.             JTable table, Object value, boolean isSelected, int row, int column)
  52.         {
  53.             text = (value == null) ? this.text : value.toString();
  54.             editButton.setText( text );
  55.             return editButton;
  56.         }
  57.         public Object getCellEditorValue()
  58.         {
  59.             return text;
  60.         }
  61.         public void actionPerformed(ActionEvent e)
  62.         {
  63.             fireEditingStopped();
  64.             System.out.println( e.getActionCommand() + " : " + table.getSelectedRow());
  65.         }
  66.     }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值