不好意思,刚才又修改了一下,程序发生实时错误,错误如下:
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已经出来了,但显示和点击时却发生错误,如何解决呢?
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已经出来了,但显示和点击时却发生错误,如何解决呢?
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()));一句处。
sportColumn.setCellEditor(new DefaultCellEditor(checkBox));这样一句够不够吗?还需要怎样实现?能否说明一下。to : tiger_wkh52741(走走.跑跑.瞧瞧!):
因为这个出错地方是JTable的代码,我没法跟踪,所以无法回答。但原始值是我给的字符型值“true”,因为table中无法让我给第一列赋boolean型值。会不会是这里错?我应该如何修改。
public boolean isCellEditable(int nRow, int nCol) {
return true;
}