The Java Program: TableTest04.java

  1 import java.awt.*;
  2 import java.awt.event.*;
  3 import javax.swing.*;
  4 import javax.swing.table.*;
  5 
  6 // requires TableValues
  7 // requires GenderRenderer
  8 // requires CurrencyRenderer
  9 // requires MultiLineHeaderRenderer
 10 
 11 public class TableTest04 extends JFrame {
 12 
 13    protected JTable table;
 14 
 15    public static void main(String[] args) {
 16       final JFrame frame  = new TableTest04 ();
 17       frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
 18       frame.setSize (400, 135);
 19       frame.setVisible (true);
 20    } 
 21 
 22    private static String [] ttt = {
 23       "Customer's First Name", "Customer's Last Name", "Customer's Date of Birth",
 24       "Customer's Account Balance", "Customer's Gender"
 25    };
 26 
 27    public TableTest04() {
 28       table = new JTable (new TableValues());
 29       table.setRowSelectionAllowed (false);
 30       table.setColumnSelectionAllowed (true);
 31       table.setDefaultRenderer (Float.class, new CurrencyRenderer());
 32 
 33       final TableColumnModel tcm = table.getColumnModel();
 34       final TableColumn gender_column = tcm.getColumn(TableValues.GENDER);
 35       gender_column.setCellRenderer(new GenderRenderer());
 36       gender_column.setCellEditor(new GenderEditor());
 37 
 38       final MultiLineHeaderRenderer mlhr = new MultiLineHeaderRenderer();
 39       final TableColumn balance_column = tcm.getColumn(TableValues.ACCOUNT_BALANCE);
 40       balance_column.setHeaderRenderer(mlhr);
 41 
 42       final JTableHeaderToolTips jthtt = new JTableHeaderToolTips(table.getColumnModel());
 43       jthtt.setToolTips (ttt);
 44       table.setTableHeader(jthtt);
 45 
 46       final Container pane = getContentPane();
 47       pane.setLayout (new BorderLayout());
 48       pane.add (new JScrollPane (table), BorderLayout.CENTER);
 49    }
 50 }