@Override
        public void mouseMoved(MouseEvent e) {
          Point point = e.getPoint();
          int column = columnAtPoint(point);
          int row = rowAtPoint(point);

          resetRollOverCell();

          if (row >= 0 && row < getRowCount() && column >= 0 && column < getColumnCount()) {
            TableCellRenderer cellRenderer = getCellRenderer(row, column);
            if (cellRenderer != null) {
              Component rc = cellRenderer.getTableCellRendererComponent(JBTable.this,
                                                                        getValueAt(row, column),
                                                                        isCellSelected(row, column),
                                                                        hasFocus(),
                                                                        row, column);
              if (rc instanceof JCheckBox && (rollOverCell == null || !rollOverCell.at(row, column))) {
                Rectangle cellRect = getCellRect(row, column, false);
                rollOverCell = new TableCell(row, column);
                ((JCheckBox)rc).putClientProperty(UIUtil.CHECKBOX_ROLLOVER_PROPERTY, cellRect);

                if (getModel() instanceof AbstractTableModel) {
                  ((AbstractTableModel)getModel()).fireTableCellUpdated(row, column);
                }
              }
            }
          }
        }
@Override
        public void mouseMoved(MouseEvent e)