- Beranda
- Komunitas
- Tech
- Programmer Forum
[Java] Membuat table filter


TS
ucup.topeko
[Java] Membuat table filter
Table filter itu apaan sih ...
liat gambar di bawah ini
biar gak panjang lebar nih source nya silahkan di pelajari
sumber
liat gambar di bawah ini
Spoiler for source:
biar gak panjang lebar nih source nya silahkan di pelajari
Spoiler for kode:
Code:
/**
*=========================================================
* Program ini dibuat oleh Ucup Topeko
* URL: [url=http://www.timposu.com]www.timposu.com[/url]
* email : [email]acobunglon@gmail.com[/email]
* Silahkan kode Java ini dipelajari / disebarkan
* secara bebas...
*==========================================================
*/
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.RowFilter;
import javax.swing.SwingUtilities;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableRowSorter;
/**
*
* @author ucup
*/
public class TableFilter extends JFrame{
private static final long serialVersionUID = 1L;
private JTextField txtFilter;
private DefaultTableModel model;
private JTable table;
private JScrollPane scrollPane;
private TableRowSorter sorter;
public TableFilter() {
super();
initComponent();
}
private void initComponent() {
txtFilter = new JTextField();
table = new JTable();
//memanggil method tablemodel
initTableModel();
//aksi TextField txtFilter
aksiTxtFilter();
scrollPane = new JScrollPane();
scrollPane.setViewportView(table);
getContentPane().add(txtFilter, BorderLayout.NORTH);
getContentPane().add(scrollPane, BorderLayout.CENTER);
pack();
setSize(500, 400);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
/**
* Method ini digunakan untuk mendeklarasikan
* Table Model dan Isinya
*/
private void initTableModel() {
if (model == null){
model = new DefaultTableModel();
table.setModel(model);
//memanggil Method dataModel
dataModel();
//set sorter
table.setRowSorter(getRowSorter());
}
}
/**
* Method ini digunakan untuk mendeklarasikan
* isi data Tabel Model
*/
private void dataModel() {
model.addColumn("Nama");
model.addColumn("Negara");
for (int i=0; i < 50; i++){
model.addRow(new Object[]{"Suarez","Uruguay"});
model.addRow(new Object[]{"Messi","Argentina"});
model.addRow(new Object[]{"Muller","Jerman"});
model.addRow(new Object[]{"Pirlo","Italia"});
model.addRow(new Object[]{"Agung Hercules","Indonesia"});
}
}
/**
* Method ini untuk memfilter data yang ada di dalam tabel
* method ini intinya..
* @return
*/
private TableRowSorter getRowSorter() {
if (sorter == null){
sorter = new TableRowSorter(model);
}
return sorter;
}
/**
* Mendeklarasikan aksi txtFilter
*/
private void aksiTxtFilter() {
txtFilter.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) {
if (txtFilter.getText().length() <= 0){
getRowSorter().setRowFilter(null);
} else{
getRowSorter().setRowFilter(RowFilter.regexFilter(txtFilter.getText()));
}
}
});
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
TableFilter tableFilter = new TableFilter();
tableFilter.setVisible(true);
}
});
}
}
sumber
Diubah oleh ucup.topeko 16-07-2014 04:37
0
891
Kutip
0
Balasan


Komentar yang asik ya


Komentar yang asik ya
Komunitas Pilihan