import java.awt.BorderLayout;
import java.awt.Container;
import java.util.Calendar;
import java.util.GregorianCalendar;
import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
class TableValues extends AbstractTableModel{
//public final static int FIRST_NAME = 0;//名
//public final static int LAST_NAME = 1;//姓
//public final static int DATE_OF_BIRTH = 2;//生日
//public final static int ACCOUNT_BALANCE = 3;//balance:平衡
//public final static int GENDER = 4;//性别
public final static boolean GENDER_MALE = true;//男
public final static boolean GENDER_FEMALE = false;//女
public Object[][] values = {
{ "康", "杜", new GregorianCalendar(1962, Calendar.FEBRUARY, 20).getTime(),
new Float(15.67), new Boolean(GENDER_MALE) },
{ "白", "李", new GregorianCalendar(1987, Calendar.JANUARY, 6).getTime(),
new Float(2.78), new Boolean(GENDER_MALE) },
{ "中山", "孙", new GregorianCalendar(1989, Calendar.AUGUST, 31).getTime(),
new Float(3.89), new Boolean(GENDER_FEMALE) },
{ "学良", "张", new GregorianCalendar(1945, Calendar.JANUARY, 16).getTime(),
new Float(-4.70), new Boolean(GENDER_FEMALE) },
{ "谨", "秋", new GregorianCalendar(1907, Calendar.AUGUST, 2).getTime(),
new Float(5.00), new Boolean(GENDER_FEMALE) }};
public int getColumnCount() {//拿到列
return values.length;
}
public int getRowCount() {//拿到行数
return values[0].length;//values[0]的列数是:5
}
public Object getValueAt(int row, int col) {//拿到单元格的值
return values[row][col];
}
}
public class ExtendingAbstractTableModel extends JFrame{
protected JTable table;
public static void main(String[] args) {
ExtendingAbstractTableModel eat = new ExtendingAbstractTableModel();
eat.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
eat.setSize(400,200);
eat.setVisible(true);
}
public ExtendingAbstractTableModel(){
Container pane = getContentPane();
pane.setLayout(new BorderLayout());
TableValues tv = new TableValues();
table = new JTable(tv);
pane.add(table,BorderLayout.CENTER);
}
}