The Java Program: TableValues.java
1
2
3 import java.util.Calendar;
4 import java.util.GregorianCalendar;
5 import javax.swing.table.AbstractTableModel;
6
7 public class TableValues extends AbstractTableModel {
8
9 public final static int FIRST_NAME = 0;
10 public final static int LAST_NAME = 1;
11 public final static int DATE_OF_BIRTH = 2;
12 public final static int ACCOUNT_BALANCE = 3;
13 public final static int GENDER = 4;
14
15 public final static boolean GENDER_MALE = true;
16 public final static boolean GENDER_FEMALE = false;
17
18 public final static String[] columnNames = {
19 "First Name", "Last Name", "Date of Birth", "Account Balance", "Gender"};
20
21 public Object[][] values = {
22 {"Clay", "Ashworth",
23 new GregorianCalendar(1962, Calendar.FEBRUARY, 20).getTime(),
24 new Float(12345.67), new Boolean(GENDER_MALE)},
25 {"Jacob", "Ashworth",
26 new GregorianCalendar(1987, Calendar.JANUARY, 6).getTime(),
27 new Float(23456.78), new Boolean(GENDER_MALE)},
28 {"Jordan", "Ashworth",
29 new GregorianCalendar(1989, Calendar.AUGUST, 31).getTime(),
30 new Float(34567.89), new Boolean(GENDER_FEMALE)},
31 {"Evelyn", "Kirk",
32 new GregorianCalendar(1945, Calendar.JANUARY, 16).getTime(),
33 new Float(-456.70), new Boolean(GENDER_FEMALE)},
34 {"Belle", "Spyres",
35 new GregorianCalendar(1907, Calendar.AUGUST, 2).getTime(),
36 new Float(567.00), new Boolean(GENDER_FEMALE)}
37 };
38
39 public int getRowCount() {
40 return values.length;
41 }
42
43 public int getColumnCount() {
44 return values[0].length;
45 }
46
47 public Object getValueAt(int row, int column) {
48 return values[row][column];
49 }
50
51 public String getColumnName(int column) {
52 return columnNames[column];
53 }
54
55 public Class getColumnClass (int column) {
56 final Class dataType;
57 if (column == ACCOUNT_BALANCE) {
58 dataType = Float.class;
59 } else if (column == DATE_OF_BIRTH) {
60 dataType = java.util.Date.class;
61 } else if ((column == FIRST_NAME) || (column == LAST_NAME)) {
62 dataType = String.class;
63 } else if (column == GENDER) {
64 dataType = Boolean.class;
65 } else {
66 dataType = super.getColumnClass(column);
67 }
68 return dataType;
69 }
70
71 public boolean isCellEditable (int row, int column) {
72 return (column == GENDER);
73 }
74
75 public void setValueAt (Object value, int row, int column) {
76 values[row][column] = value;
77 }
78 }