Freddy Kresna
Sorting and Filtering in JTable
Dalam Java 6, JTable telah berkembang, Fungsi umum filtering dan sorting akhirnya ditambahkan, berikut ini adalah contoh source codenya :
/*
* TabelContoh.java
*
* Created on September 27, 2007, 7:59 AM
*
*/
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.RowFilter;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;
/**
*
* @author Administrator
*/
public class TabelContoh{
/** Creates a new instance of TabelContoh */
public TabelContoh() {
JFrame frame = new JFrame("Mengurutkan dan Filtering");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Object data[][] = {
{"1","14097","Agus Santoso"},
{"2","14139","Angelina Stephanie"},
{"3","14140","Angeline Jelita"},
{"4","14147","Arnold Sanjaya"},
{"5","14159","Brigitta Valentia"},
{"6","14170","Christian"},
{"7","14174","Christie Tanjung"},
{"8","14180","Citra Kumala"},
{"9","14186","Daniel Kusnanto"},
{"10","14189","David Sanjaya"}
};
String[] COLUMN_NAME = new String[] {"No","NIS","Nama"};
TableModel model = new DefaultTableModel(data,COLUMN_NAME);
JTable table = new JTable(model);
//Sorting
final TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(model);
table.setRowSorter(sorter);
JScrollPane pane = new JScrollPane(table);
frame.add(pane,BorderLayout.CENTER);
JPanel pnl = new JPanel(new BorderLayout());
JLabel lbl = new JLabel("Filter");
JLabel lbl2 = new JLabel("Tekan Enter untuk Filtering");
final JTextField txtFilter = new JTextField("T");
pnl.add(lbl,BorderLayout.WEST);
pnl.add(txtFilter,BorderLayout.CENTER);
pnl.add(lbl2, BorderLayout.EAST);
frame.add(pnl, BorderLayout.NORTH);
//filtering
txtFilter.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
if (evt.getKeyCode() == evt.VK_ENTER)
{
String text = txtFilter.getText();
if (text.length() == 0) {
sorter.setRowFilter(null);
} else {
sorter.setRowFilter(RowFilter.regexFilter(text));
}
}
}
});
frame.setSize(400,250);
frame.setVisible(true);
}
public static void main(String[] args)
{
new TabelContoh();
}
}
referensi : Zukowski, John, "Java™ 6 Platform Revealed ", 2006, California, Appress
Kurang lebih tampilannya seperti ini :Semoga membantu :)
Freddy Kresna T.
Posted at 09:23AM Sep 27, 2007 by Freddy Kresna Tjoenedi in Java | Comments[2]