不好意思,刚才又修改了一下,程序发生实时错误,错误如下:
java.lang.ClassCastException at javax.swing.JTable$BooleanRenderer.getTableCellRendererComponent(JTable.java:3401) at javax.swing.JTable.prepareRenderer(JTable.java:3693) at javax.swing.JTable.getToolTipText(JTable.java:2405) at javax.swing.ToolTipManager$insideTimerAction.actionPerformed(ToolTipManager.java:679) at javax.swing.Timer.fireActionPerformed(Timer.java:271) at javax.swing.Timer$DoPostEvent.run(Timer.java:201) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178) at java.awt.EventQueue.dispatchEvent(EventQueue.java:448) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:197) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136) at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)
而且从画面上看,checkbox已经出来了,但显示和点击时却发生错误,如何解决呢?

解决方案 »

  1.   

    BTW:
    public Component getTableCellRendererComponent(JTable table, Object value,
           boolean isSelected, boolean hasFocus, int row, int column) {
        if (isSelected) {
            setForeground(table.getSelectionForeground());
            super.setBackground(table.getSelectionBackground());
        }
        else {
            setForeground(table.getForeground());
            setBackground(table.getBackground());
        }
                setSelected((value != null && ((Boolean)value).booleanValue()));
                return this;
            }
        }发生错误的第一个地方在这个函数的setSelected((value != null && ((Boolean)value).booleanValue()));一句处。
      

  2.   

    这样我以前没有试过。我记得实现单元格的绘制要实现一个CellEditor(好象,名字忘了)接口呀!
      

  3.   

    Object value 穿过来的是什么?
      

  4.   

    to : shangqiao(伤桥) (:
       sportColumn.setCellEditor(new DefaultCellEditor(checkBox));这样一句够不够吗?还需要怎样实现?能否说明一下。to : tiger_wkh52741(走走.跑跑.瞧瞧!):
          因为这个出错地方是JTable的代码,我没法跟踪,所以无法回答。但原始值是我给的字符型值“true”,因为table中无法让我给第一列赋boolean型值。会不会是这里错?我应该如何修改。
      

  5.   

    自己写表模型。重载方法:
      public boolean isCellEditable(int nRow, int nCol) {
          return true;
      }