/* (swing1.1) */ //package jp.gr.java_conf.tame.swing.examples; import java.awt.*; import java.awt.event.*; import java.util.*; import java.text.*; import javax.swing.*; import javax.swing.table.*; import jp.gr.java_conf.tame.swing.table.*; /** * @version 1.0 02/25/99 */ public class SortableTableExample extends JPanel { public SortableTableExample(){ setLayout(new BorderLayout()); String[] headerStr = {"Name","Date","Size","Dir"}; int[] columnWidth = {100,150,100,50}; SortableTableModel dm = new SortableTableModel() { public Class getColumnClass(int col) { switch (col) { case 0: return String.class; case 1: return Date.class; case 2: return Integer.class; case 3: return Boolean.class; default: return Object.class; } } public boolean isCellEditable(int row, int col) { switch (col) { case 1: return false; default: return true; } } public void setValueAt(Object obj, int row, int col) { switch (col) { case 2: super.setValueAt(new Integer(obj.toString()), row, col); return; default: super.setValueAt(obj, row, col); return; } } }; dm.setDataVector(new Object[][]{ {"b" ,getDate("98/12/02"),new Integer(14),new Boolean(false)}, {"a" ,getDate("99/01/01"),new Integer(67),new Boolean(false)}, {"d" ,getDate("99/02/11"),new Integer(2) ,new Boolean(false)}, {"c" ,getDate("99/02/27"),new Integer(7) ,new Boolean(false)}, {"foo" ,new Date() ,new Integer(5) ,new Boolean(true)}, {"bar" ,new Date() ,new Integer(10),new Boolean(true)}}, headerStr); JTable table = new JTable(dm); //table.setShowGrid(false); table.setShowVerticalLines(true); table.setShowHorizontalLines(false); SortButtonRenderer renderer = new SortButtonRenderer(); TableColumnModel model = table.getColumnModel(); int n = headerStr.length; for (int i=0;i