Contoh Membuat Filtering JTable di Java Swing

Contoh Membuat Filtering JTable di Java Swing - Pada kesempatan sebelumnya saya sudah memberikan tutorial java swing tentang cara pembuatan filtering atau fungsi pencarian di JTable dengan menggunakan KeyListener atau KeyEvent. Namun pada tutorial ini saya akan menjelaskan cara membuat filtering JTable di java swing menggunanakan DocumentListener.


Cara pembuatan filtering atau pencarian pada JTable di java swing menggunakan DocumentListener memiliki kelebihan daripada menggunakan KeyListener atau KeyEvent, yaitu pencariannya bersifat live (ketika melakukan pengetikan di JTextField untuk melakukan search, maka akan melakukan pencarian saat itu juga) tanpa perlu melakukan klik tombol ataupun menekan ENTER.

Berikut tampilan (form GUI) yang akan saya buat untuk contoh  filtering pada JTable.

Contoh Membuat Filtering JTable di Java Swing

Output form yang dihasilkan mungkin berbeda dengan yang  kalian  buat, dikarenakan saya menggunakan synthetica look and feels.

Baca Juga : Contoh Penggunaan Look and Feels di Java Swing

Source code contoh membuat filtering JTable di java swing menggunakan DocumentListener.

package net.akira.view;

import java.awt.Dimension;
import java.awt.FlowLayout;
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.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableRowSorter;

/**
 *
 * @author Akira
 */
public class ContohFiltering2 extends JFrame{
    private JTable tabel;
    private JTextField cari;
    private DefaultTableModel modelTable;
    private TableRowSorter filtering;
    
    public ContohFiltering2(){
        setTitle("Contoh JTable Filtering Document Listener");
        setSize(500, 400);
        setResizable(false);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
        userInterface();
        setVisible(true);
    }
    
    private void userInterface(){
        JPanel panTop = new JPanel(new FlowLayout(FlowLayout.RIGHT, 10, 10));
        
        panTop.add(new JLabel("Cari"));
        
        cari = new JTextField();
        cari.setPreferredSize(new Dimension(250, 30));
        cari.getDocument().addDocumentListener(new DocumentListener() {
            @Override
            public void insertUpdate(DocumentEvent e) {
                changedUpdate(e);
            }

            @Override
            public void removeUpdate(DocumentEvent e) {
                changedUpdate(e);
            }

            @Override
            public void changedUpdate(DocumentEvent e) {
                getRowSorter().setRowFilter(RowFilter.regexFilter(cari.getText()));
            }
        });
        panTop.add(cari);
        
        getContentPane().add(panTop, "North");
        
        modelTable = new DefaultTableModel();
        modelTable.setColumnIdentifiers(new Object[]{"Name", "Address", "Old", "Job"});
        tabel = new JTable(modelTable);
        
        modelTable.addRow(new Object[]{"Najime Kino", "Tokyo", "18", "Student"});
        modelTable.addRow(new Object[]{"Akira Haruka", "Akihabara", "15", "Student"});
        modelTable.addRow(new Object[]{"Natsuki", "Kobe", "25", "Programmer"});
        modelTable.addRow(new Object[]{"Asoka Hisako", "Tokyo", "29", "Accounting"});
        
        filtering = new TableRowSorter<>(modelTable);
        tabel.setRowSorter(getRowSorter());
        
        getContentPane().add(new JScrollPane(tabel));
    }
    
    private TableRowSorter getRowSorter(){
        if(filtering == null){
            filtering = new TableRowSorter(modelTable);
        }
        return filtering;
    }
    
    public static void main(String[] args) {
        ContohFiltering2 obj = new ContohFiltering2();
    }

}

Baca Juga : Cara Membuat Sorting pada JTable di Java Swing

Sekian tutorial java swing pembuatan filtering di JTable menggunakan DocumentListener. Semoga bermanfaat dan silahkan tinggalkan komentar.

Copyrighted.com Registered & Protected 
2AXK-JAOU-RGVB-FQIL


EmoticonEmoticon