www.pudn.com > JTable > SortableTableExample.java
/* (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