The Java Program: TableTest05.java
1 import java.awt.Component;
2 import java.awt.Container;
3 import java.awt.BorderLayout;
4
5 import javax.swing.*;
6 import javax.swing.table.*;
7
8
9
10
11
12
13
14
15
16 public class TableTest05 extends JFrame {
17
18 public static void main (String[] args) {
19 final JFrame frame = new TableTest05 ();
20 frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
21 frame.setSize (400, 135);
22 frame.setVisible (true);
23 }
24
25 public TableTest05 () {
26 final Container pane = getContentPane();
27 pane.setLayout(new BorderLayout());
28 final SortTableModel table_model = new SortTableModel(new TableValues ());
29 final JTable table = new JTable(table_model);
30 table.setRowSelectionAllowed(false);
31 table.setColumnSelectionAllowed(true);
32 table.setDefaultRenderer(Float.class, new CurrencyRenderer());
33
34 final TableColumnModel tcm = table.getColumnModel();
35 final TableColumn gender_column = tcm.getColumn(TableValues.GENDER);
36 gender_column.setCellRenderer(new GenderRenderer());
37 gender_column.setCellEditor(new GenderEditor());
38
39
40 final MultiLineHeaderRenderer mlhr = new MultiLineHeaderRenderer();
41 final SortColumnHeaderRenderer renderer = new SortColumnHeaderRenderer (table_model, mlhr);
42 int count = tcm.getColumnCount();
43 for (int i = 0; i < count; i++) {
44 tcm.getColumn(i).setHeaderRenderer(renderer);
45 }
46
47
48 final JTableHeaderToolTips jthtt = new JTableHeaderToolTips(table.getColumnModel());
49 jthtt.setToolTips(new String[] {"Customer's First Name",
50 "Customer's Last Name", "Customer's Date of Birth",
51 "Customer's Account Balance", "Customer's Gender"});
52 table.setTableHeader (jthtt);
53 table.getTableHeader().addMouseListener (new SortMouseListener ());
54 final JScrollPane jsp = new JScrollPane(table);
55 pane.add (jsp, BorderLayout.CENTER);
56 }
57 }