Java examples for Swing:JTable Sort
Creates a panel that contains a JTable that can be sorted can be sorted.
/*/*from w w w. j av a 2s . c om*/ * Copyright (C) 2005 Jeff Tassin * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ import java.awt.Container; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JViewport; import javax.swing.table.JTableHeader; import javax.swing.table.TableColumn; import javax.swing.table.TableColumnModel; import javax.swing.table.TableModel; public class Main{ /** * Creates a panel that contains a table that can be sorted can be sorted. * The table is scrollable and has automatically resized subsequent columns * * @param model * the data model for the table. Don't send in a TableSorter * here. * @param sortable * if true, then we will return a table that has sortable * columns. This will wrap the tablemodel with a TableSorter. * @return a container that contains the table. */ public static JTable createBasicTablePanel(TableModel model, boolean sortable) { JTable table = null; if (sortable) { TableSorter sorter = new TableSorter(model); table = new JTable(sorter); initializeTableSorter(sorter, table); } else { table = new JTable(model); } table.setCellSelectionEnabled(true); return table; } /** * Initializes a table and a table sorter */ public static void initializeTableSorter(TableSorter sorter, JTable table) { sorter.addMouseListenerToHeaderInTable(table); // set the renderer for each column TableColumnModel columnmodel = table.getColumnModel(); int count = columnmodel.getColumnCount(); for (int index = 0; index < count; index++) { TableColumn column = columnmodel.getColumn(index); column.setHeaderRenderer(new SortedColumnHeaderRenderer()); } } }