Tutorial ini q dapet dr Blog tetangga karena dapet tugas dari Dosen.baik teman-teman, kali ini saya akan sedikit nulis tentang pentingnya
Table Row Sorter. Seperti apakah sih
Table Row Sorter itu?

. Kita lansung saja pada kasus nya yach? misalnya teman-teman sekalian punya sebuat
JTexfield untuk melakuan sebuah pencarian data ke dalam data yang ada di
database. Kurang lebih seperti ini.

kebanyakan teman-teman yang membuat kode pogram, pasti memberikan sebuah
action query pada JTextfield tersebut..:D. Ya kurang lebih seperti ini.
1 | SELECT * FROM Siswa WHERE nama_siswa like ' %"+JTextfield.getText()+" %' ; |
Jadi intinya kita nyari data ke dalam table Siswa, ya anggap aja seperti itulah

. Nah, setiap kali kita menuliskan sebuah Charakter, contoh nya saya menuliskan charakter ‘ A ‘. Maka action yang di dapat adalah
1. | SELECT * FROM Siswa WHERE nama_siswa like ' %"a" %' ; |
Berarti setiap kali kita menuliskan sebuah charakter lagi. Maka, dia kembali melakukan sebuah Query. Terus begitu hingga data yang di butuhkan muncul.
Hmmm……Sungguh Boros sekali. Hanya menuliskan sebuah charakter saja. perlu melakukan perintah “SELECT” berulang-ulang. Nah untuk itu, kita menggunakan
Table Row Sorter. Jadi kita akan melakukan sebuah pencarian data ke dalam JTable yang kita miliki saja. Tidak ada perintah “SELECT” di dalam nya. Kita tinggal memfilter karakter yang kita ketikan di sebuah jTexfield dengan data yang ada di JTable. Baik kita mulai saja. Kita lansung ke contohnya saja yach.
Perlu di perhatikan disini. saya menggunakan DataSiswaTableModel. java sebagai DefaultTableModel nya. teman-teman bisa buat kelas untuk menampilkan data dengan menurunkan kelas DefaultTableModel atau AbstractTableModel. Saya telah membuat class turunan AbstractTableModel yang diberinama
DataSiswaTableModel.java.
Baik, Lansung saja. Pada screenshot di atas. saya Mempunyai Sebuah
JFrame class. yang memiliki sebuah JLabel, JTextfield dan Sebuah JTable. untuk button-buttonya bukan bahasan kita

. kita hanya menggunakan komponen2 yang saya sebutkan saja. Baiklah, langsung masuk ke Source code dari JFrame teman-teman, dan implementasikan pada class JFrame teman-teman sebuah interface “Document Listener”.
kalo di class saya, kurang lebih seperti ini :
implementasikan semua method yang di butuhkan, maka akan muncul 3 method di JFrame teman-teman yaitu :
Ok, sudah sampe sini. inisialisasi object table model yang teman-teman miliki. program nya di tempat saya, kurang lebih seperti ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 | /**
*
* @author pratama
*/
public class DataSiswaView extends javax.swing.JInternalFrame implements DocumentListener {
/** Creates new form DataSiswa
*/
private List records = new ArrayList();
//class table model
private DataSiswaTableModel siswaTable;
//table row sorter
private TableRowSorter sorter;
public DataSiswaView() {
initComponents();
//inisialisasi class DataSiswatableModel
siswaTable = new DataSiswaTableModel(records);
tableSiswa.setModel(siswaTable);
/**
* Men-SET table sorter.
* cariTextField = nama komponen pencarian
*/
cariTextField.getDocument().addDocumentListener(this);
sorter = new TableRowSorter(siswaTable);
tableSiswa.setRowSorter(sorter);
} |
kemudian buat sebuah method untuk memfilter data, dan di panggil di method yang mengimpementasikan class
Document Listerner tadi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 | public void insertUpdate(DocumentEvent e) {
newFilter();
}
public void removeUpdate(DocumentEvent e) {
newFilter();
}
public void changedUpdate(DocumentEvent e) {
// throw new UnsupportedOperationException("Not supported yet.");
newFilter();
}
private void newFilter() {
RowFilter rf = null;
//If current expression doesn't parse, don't update.
try {
rf = RowFilter.regexFilter(cariTextField.getText(), 0, 1);
} catch (java.util.regex.PatternSyntaxException e) {
return;
}
sorter.setRowFilter(rf);
} |
dan hasilnya, dapat teman-teman rasakan sendiri. Pencarian lebih CEPAT

. saya menuliskan charakter ‘ T ‘. tanpa seikit loading pun, data pada JTable yang mempunyai charakter ‘T’ akan muncul

. Teman-teman bisa download source code nya lengkap
disini
Terimasih teman-teman, semoga bisa sedikit membantu

. Salam
