Tuesday, November 03, 2009

Membuat Sort Pada Jtable

Sebelum Sorting

Setelah Sorting




package test;

import java.awt.BorderLayout;
import javax.swing.JScrollPane;
import javax.swing.JTable;

import javax.swing.WindowConstants;
import javax.swing.SwingUtilities;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableRowSorter;

/**
 * @author echo
 */
public class SortedTable extends javax.swing.JFrame {

    /**
     * Serial Verion UID
     */
    private static final long serialVersionUID = -2093871956519605230L;

    private JScrollPane scrollpaneTable;

    private JTable tableData;

    private DefaultTableModel modelTabel;

    /**
     * Metode utama
     *
     * @param args
     * parameter comand line atau shell
     */
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {

            public void run() {
                SortedTable inst = new SortedTable();
                inst.setLocationRelativeTo(null);
                inst.setVisible(true);
            }
        });
    }

    /**
     * Membuat SortedTable baru
     */
    public SortedTable() {
        super();
        initGUI();
    }

    /**
     * Metode ini digunakan untuk pendeklarasian seluruh komponen GUI yang
     * berinteraksi dengan Frame
     */
    private void initGUI() {
        try {
            setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
            getContentPane().add(getScrollpaneTable(), BorderLayout.CENTER);
            pack();
            this.setSize(485, 395);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * Metode ini digunakan untuk mendeklarasikan scrollpane tabel
     *
     * @return JScrollPane scrollpane table
     */
    private JScrollPane getScrollpaneTable() {
        if (scrollpaneTable == null) {
            scrollpaneTable = new JScrollPane();
            scrollpaneTable.setViewportView(getTableData());
        }
        return scrollpaneTable;
    }

    /**
     * Metode ini digunakan untuk mendeklarasikan tabel data
     *
     * @return JTable tabel data
     */
    private JTable getTableData() {
        if (tableData == null) {
            tableData = new JTable(getModelTable());
            tableData.setRowSorter(new TableRowSorter(getModelTable()));
        }
        return tableData;
    }

    /**
     * Metode ini digunakan untuk mendeklarasikan TableModel
     *
     * @return DefaultTableModel model
     */
    private DefaultTableModel getModelTable() {
        if (modelTabel == null) {
            Object[][] row = new Object[][]{
                {
                    "NetBeans", "Sun Microsystem"
                }, {
                    "Eclipse", "IBM"
                }, {
                    "Visual J#", "Microsoft"
                }, {
                    "JBuilder", "Bordland"
                }
            };
            Object[] colum = new Object[]{
                "Project", "Vendor"
            };
            modelTabel = new DefaultTableModel(row, colum){
//Untuk  readonly cell
 public boolean isCellEditable(int rowIndex, int columnIndex) {
                return false;
            }
 
};
        }
        return modelTabel;
    }
}

No comments: