import java.awt.Font;
import java.awt.Color;
import java.awt.Toolkit;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.BorderLayout;
import java.awt.event.MouseEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowAdapter;
import java.util.ArrayList;
import java.util.Enumeration;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.JComboBox;
import javax.swing.UIManager;
import javax.swing.JSplitPane;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.DefaultComboBoxModel;
import javax.swing.table.JTableHeader;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.border.EtchedBorder;
import javax.swing.border.TitledBorder;
/*********************************************************************
*
*
* TableChooser.java
*
* Last modified: 2005-04-26
*
* Author: NeedJava
*
* E-Mail:
needjava@126.com
*
* Address: HeFei-AnHui-China
*
* Bug: 如果选中行头拖动,会发现表体不会跟着拖动,除非你拖动表体
*
* If you fixed this bug, please let us know, Thanks a lot.
*
*
*********************************************************************/
class TableChooser extends JFrame
{
private final boolean horizontal;
private String[] tableTitle;
private ArrayList primaryBody;
private ArrayList prepareBody;
private ArrayList selectBody;
private ShowTableModel prepareModel;
private ShowTableModel selectModel;
private final RowHeaderModel prepareRowHeaderModel;
private final RowHeaderModel selectRowHeaderModel;
private final JTable prepareTable;
private final JTable selectTable;
private final JTable prepareRowHeaderTable;
private final JTable selectRowHeaderTable;
private final static int rowHeight=18;
private final JScrollPane prepareTableJSP;
private final JScrollPane selectTableJSP;
private final JPanel prepareTablePanel;
private final JPanel selectTablePanel;
private final JSplitPane splitPane;
/**
*
* 构造函数
*
*/
public TableChooser( boolean horizontal )
{
this.horizontal=horizontal;
//设置程序标题栏
this.setTitle( "选择框" );
//不给最大化
//this.setResizable( false );
//设置程序界面大小
this.setSize( new Dimension( 500, 400 ) );
//将程序居中放置(方法1)
Dimension paneSize=this.getSize();
Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation( ( screenSize.width-paneSize.width )/2, ( screenSize.height-paneSize.height )/2 );
//将程序居中放置(方法2)
//this.setLocationRelativeTo( null );
//设置程序关闭的类型,防止关闭
this.setDefaultCloseOperation( JFrame.DO_NOTHING_ON_CLOSE );
//设置关闭程序
this.addWindowListener( new WindowAdapter()
<