Java tutorial
import java.util.Arrays; import java.util.Comparator; import java.util.Vector; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; public class Main { public static void main(String[] argv) throws Exception { DefaultTableModel model = new DefaultTableModel(); JTable table = new JTable(model); table.setAutoCreateColumnsFromModel(false); boolean ascending = false; Vector data = model.getDataVector(); Object[] colData = new Object[model.getRowCount()]; for (int i = 0; i < colData.length; i++) { colData[i] = ((Vector) data.get(i)).get(0); } Arrays.sort(colData, new ColumnSorter()); for (int i = 0; i < colData.length; i++) { ((Vector) data.get(i)).set(0, colData[i]); } model.fireTableStructureChanged(); } } class ColumnSorter implements Comparator { ColumnSorter() { } public int compare(Object a, Object b) { if (a instanceof String && ((String) a).length() == 0) { a = null; } if (b instanceof String && ((String) b).length() == 0) { b = null; } if (a == null && b == null) { return 0; } else if (a == null) { return 1; } else if (b == null) { return -1; } else if (a instanceof Comparable) { return ((Comparable) a).compareTo(b); } else { return a.toString().compareTo(b.toString()); } } }