Membuat teks filter utk jtable

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Membuat teks filter utk jtable

onsir salman
Bagaiamana cara membuat teks filter, misal saya
menampilkan data ke jtable, lalu bila saya ketik teks
di jtextfild maka data di jtable tsb ikut berubah.
saya sdh coba dgn galzedlist, tapi katanya java versi
6 sudah mendukung untuk proses filter tsb. maka saya
ingin coba, tapi saya gak bisa. ada yg punya
contohnya?
terima kasih.



      ________________________________________________________
Bergabunglah dengan orang-orang yang berwawasan, di di bidang Anda! Kunjungi Yahoo! Answers saat ini juga di http://id.answers.yahoo.com/
Reply | Threaded
Open this post in threaded view
|

Re: Membuat teks filter utk jtable

Roy Abu Bakar
Try this :

import javax.swing.JTable;
import javax.swing.RowFilter;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;

/**
 *
 * @author ROY ABU BAKAR
 */
public class FilterData {

    private TableModel tableModel;
    private TableRowSorter<TableModel> sorter;

    public FilterData(JTable table) {
        tableModel = table.getModel();
        sorter = new TableRowSorter<TableModel>(tableModel);
        table.setRowSorter(sorter);
    }

    public void searchData(String keyword, int... indices) {
        RowFilter<TableModel, Object> filter = null;
        try {
            filter = RowFilter.regexFilter(keyword, indices);
        } catch (java.util.regex.PatternSyntaxException e) {
            return;
        }
        sorter.setRowFilter(filter);
    }
}

Kemudian di konstruktor class form kamu buat objectnya :
final FilterData filterDataMaster = new FilterData(namaTabel);


Lalu buat listener di JTextField, seperti contoh ini :

textField.getDocument().addDocumentListener(new DocumentListener() {

            @Override
            public void insertUpdate(DocumentEvent e) {
                filterDataMaster.searchData(textField.getText(), 0); // 0 = index pertama di kolom tabel.
            }

            @Override
            public void removeUpdate(DocumentEvent e) {
                filterDataMaster.searchData(textField.getText(), 0);
            }

            @Override
            public void changedUpdate(DocumentEvent e) {
                filterDataMaster.searchData(textField.getText(), 0);
            }
        });


Atau bisa juga set event caretUpdate nya, seperti ini :
private void textFieldCaretUpdate(javax.swing.event.CaretEvent evt) {                                                      
    FilterData filterDataMaster = new FilterData(namaTabel);
    filterDataMaster.searchData(textField.getText(), 0, 1, 2, 3);
}


Moga2 membantu :)
onsir salman <[hidden email]> wrote:                             Bagaiamana cara membuat teks filter, misal saya
 menampilkan data ke jtable, lalu bila saya ketik teks
 di jtextfild maka data di jtable tsb ikut berubah.
 saya sdh coba dgn galzedlist, tapi katanya java versi
 6 sudah mendukung untuk proses filter tsb. maka saya
 ingin coba, tapi saya gak bisa. ada yg punya
 contohnya?
 terima kasih.
 
 ________________________________________________________
 Bergabunglah dengan orang-orang yang berwawasan, di di bidang Anda! Kunjungi Yahoo! Answers saat ini juga di http://id.answers.yahoo.com/
 
     
                                       

       
---------------------------------
Be a better friend, newshound, and know-it-all with Yahoo! Mobile.  Try it now.

[Non-text portions of this message have been removed]

Reply | Threaded
Open this post in threaded view
|

Re: Membuat teks filter utk jtable

Akhira
This post has NOT been accepted by the mailing list yet.
In reply to this post by onsir salman
Bisa menggunakan 2 cara untuk melakukan filter tabel, perbedaannya hanya terletak pada penggunaan Aksi pada JTextfield tersebut yaitu dengan menggunakan DocumentListener dan KeyListener atau keyevent. untuk lebih jelasnya silahkan kunjungi.
[http://www.community-java.com/2017/03/contoh-membuat-filtering-jtable-pada-java-swing.html]