Contoh Membuat Filtering JTable pada Java Swing - Java Community

Contoh Membuat Filtering JTable pada Java Swing

Contoh Membuat Filtering JTable pada Java Swing - Pada tutorial contoh cara membuat filtering atau yang biasa kita sebut pencarian pada sebuah tabel pada java swing (JTable) saya akan menggunakan KeyListener atau KeyEvent. Sebenarnya kalian juga bisa menggunakan DocumentListener, ada kelebihan dan kekurang dalam penggunaan KeyEvent dan DocumentListener ketika melakukan filtering atau pencarian pada JTable. Contoh pembuatan filtering atau pencarian pada JTable di java swing yang akan saya bahas menggunakan KeyEvent Enter, maksudnya adalah filtering atau pencarian akan dilakukan ketika kalian menginputkan text pada JTextField dan menekan tombol Enter untuk memulai pencarian tersebut.

Untuk pembuatan filtering pencarian pada JTable menggunakan KeyEvent atau KeyListener, silahkan kunjungi : Contoh Membuat Filtering JTable di Java Swing.

Berikut tampilan form yang akan saya gunakan untuk contoh pencarian JTable.

Contoh Membuat Filtering JTable pada Java Swing


Source code contoh membuat filtering JTable pada java swing.
import com.sun.glass.events.KeyEvent;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.JTable;
import javax.swing.RowFilter;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableRowSorter;

/**
 *
 * @author Akira
 */
public class ContohFiltering extends JFrame{
    private JTable tabel;
    private JTextField search;
    private DefaultTableModel model;
    private TableRowSorter tabsorter;
    
    public ContohFiltering(){
        setTitle("Contoh JTable Filtering");
        setSize(500, 400);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setResizable(false);
        setLocationRelativeTo(null);
        userInterface();
        setVisible(true);
    }
    
    private void userInterface(){
        JPanel pan = new JPanel(new FlowLayout(FlowLayout.RIGHT, 10, 10));
        
        pan.add(new JLabel("Cari"));
        
        search = new JTextField();
        search.setPreferredSize(new Dimension(250, 30));
        search.addKeyListener(new KeyListener() {
            @Override
            public void keyTyped(java.awt.event.KeyEvent e) {
            }

            @Override
            public void keyPressed(java.awt.event.KeyEvent e) {
                if(e.getKeyChar()==KeyEvent.VK_ENTER){
                    if(search.getText().length() > 0){
                        getRowSorter().setRowFilter(RowFilter.regexFilter(search.getText()));
                    } else {
                        getRowSorter().setRowFilter(null);
                    }
                }
            }

            @Override
            public void keyReleased(java.awt.event.KeyEvent e) {
            }
        });
        pan.add(search);
        
        getContentPane().add(pan, "North");
        
        model = new DefaultTableModel();
        model.setColumnIdentifiers(new Object[]{"Nama", "Alamat", "Usia", "Status"});
        tabel = new JTable(model);
        
        model.addRow(new Object[]{"Najime Akira", "Tokyo", "17", "Pelajar"});
        model.addRow(new Object[]{"Haruka", "Akihabara", "15", "Pelajar"});
        model.addRow(new Object[]{"Kudo Natsuki", "Tokyo", "25", "Programmer"});
        model.addRow(new Object[]{"Asoka Rin", "Kobe", "29", "Ibu Rumah Tangga"});
        
        tabsorter = new TableRowSorter<>(model);
        tabel.setRowSorter(getRowSorter());
        
        getContentPane().add(new JScrollPane(tabel));
    }
    
    private TableRowSorter getRowSorter(){
        if(tabsorter == null){
            tabsorter = new TableRowSorter(model);
        }
        return tabsorter;
    }
    
    public static void main(String[] args) {
        ContohFiltering obj = new ContohFiltering();
    }

}
Penjelasan source code contoh pembuatan filtering JTable diatas :
     
@Override
public void keyPressed(java.awt.event.KeyEvent e) {
     if(e.getKeyChar()==KeyEvent.VK_ENTER){
          if(search.getText().length() > 0){
               getRowSorter().setRowFilter(RowFilter.regexFilter(search.getText()));
          } else {
               getRowSorter().setRowFilter(null);
          }
      }
}
Method keyPressed(java.awt.event.KeyEvent e) akan dieksekusi ketika kita menekan tombol, maksud dari if(e.getKeyChar()==KeyEvent.VK_ENTER) adalah jika kalian menekan tombol Enter maka akan melakukan eksekusi statement dibawahnya.

Sekian tutorial contoh cara membuat filtering atau pencarian pada sebuah JTable java swing. Silahkan tinggalkan komentar.

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

Subscribe to receive free email updates:

2 Responses to "Contoh Membuat Filtering JTable pada Java Swing"