JXTableHeader extends JTableHeader implements TableColumnModelExtListener { @Override public void setTable(JTable table) { uninstallTable(); super.setTable(table); installTable(); if (getXTable() != null) { installHeaderListener(); } else { uninstallHeaderListener(); } } 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 testEnabledSynched() { JXTable table = new JXTable(); table.setEnabled(false); assertEquals(table.isEnabled(), table.getTableHeader().isEnabled()); JXTableHeader header = new JXTableHeader(); header.setTable(table); assertEquals(table.isEnabled(), header.isEnabled()); header.setTable(null); assertEquals(true, header.isEnabled()); }