JXTableHeader extends JTableHeader implements TableColumnModelExtListener { @Override public void setDraggedDistance(int distance) { int old = getDraggedDistance(); super.setDraggedDistance(distance); firePropertyChange("draggedDistance", old, getDraggedDistance()); if (!getAutoscrolls() || (getXTable() == null)) return; TableColumn column = getDraggedColumn(); if (column != null) { getXTable().scrollColumnToVisible(getViewIndexForColumn(column)); } } JXTableHeader();  JXTableHeader(TableColumnModel columnModel); @Override void setTable(JTable table); @Override void columnPropertyChange(PropertyChangeEvent event); @Override Point getPopupLocation(MouseEvent event); Point getPopupTriggerLocation(); @Override String getToolTipText(MouseEvent event); TableColumnExt getColumnExt(Point point); JXTable getXTable(); boolean getResortsOnDoubleClick(); void setResortsOnDoubleClick(boolean resortsOnDoubleClick); TableCellRenderer getCellRenderer(int columnIndex); @Override Dimension getPreferredSize(); @Override void setDraggedColumn(TableColumn column); @Override void setResizingColumn(TableColumn aColumn); @Override void setDraggedDistance(int distance); @Override TableColumn getDraggedColumn();  }
@Test public void testNotifyDraggedDistance() { PropertyChangeReport report = new PropertyChangeReport(header); header.setDraggedDistance(10); TestUtils.assertPropertyChangeEvent(report, "draggedDistance", 0, 10); }