public RowHeaderRenderer(JTable reftable, JTable tableShow) {
			this.dataTable = reftable;
			this.headTable = tableShow;
			// reftable中选择行时，RowHeader会发生颜色变化
			reftable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
				
				@Override
				public void valueChanged(ListSelectionEvent evt) {
					if(!evt.getValueIsAdjusting()) {
						headTable.repaint();
					}
					
				}
			});
			reftable.getModel().addTableModelListener(new TableModelListener() {
				
				@Override
				public void tableChanged(TableModelEvent evt) {
					AbstractTableModel model = (AbstractTableModel) evt.getSource();
					((TableRowHeaderModel) headTable.getModel()).setRowCount(model.getRowCount());
					headTable.repaint();
				}
			});
			reftable.getRowSorter().addRowSorterListener(new RowSorterListener() {
				
				@Override
				public void sorterChanged(RowSorterEvent evt) {
					RowSorter<?> sorter = evt.getSource();
					int count = dataTable.getModel().getRowCount();
					if(sorter instanceof DefaultRowSorter<?, ?>) {
						if(((DefaultRowSorter<?, ?>) sorter).getRowFilter() != null) {
							count = sorter.getViewRowCount();
						}
					}
					((TableRowHeaderModel) headTable.getModel()).setRowCount(count);
					headTable.repaint();
				}
			});
		}