www.pudn.com > tame.rar > SortableTableExample.java
/* (swing1.1) */
package tame.examples;
import java.awt.BorderLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.text.DateFormat;
import java.text.ParseException;
import java.util.Date;
import java.util.Locale;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.JTableHeader;
import javax.swing.table.TableColumnModel;
import tame.table.SortButtonRenderer;
import tame.table.SortableTableModel;
/**
@author Nobuo Tamemasa
@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