{filelink=903}
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
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.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;
public class FiltrageTableReg {
public static void main(String args[]) {
JFrame frame = new JFrame("Filtrage Table avec Regex");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Object lignes[][] = {
{ "Bernard A.", "Dir. Tech", 2500.00 },
{ "Alber. Sin", "Dir. Financier", 2300.00 },
{ "Steven Cat", "Chef Projet Info", 2500.00},
{ "Nicolas Lambert", "Resp. tech", 25000 }
};
String colonnes[] = { "Nom", "Fonction", "Salaires" };
TableModel model = new DefaultTableModel(lignes, colonnes) {
public Class getColumnClass(int column) {
Class returnValue;
if ((column > 0) && (column < getColumnCount())) {
returnValue = getValueAt(0, column).getClass();
} else {
returnValue = Object.class;
}
return returnValue;
}
};
final JTable table = new JTable(model);
final TableRowSorter sorter = new TableRowSorter(model);
table.setRowSorter(sorter);
JScrollPane pane = new JScrollPane(table);
frame.add(pane, BorderLayout.CENTER);
JPanel panel = new JPanel(new BorderLayout());
JLabel label = new JLabel("Filtrage");
panel.add(label, BorderLayout.WEST);
final JTextField filterText = new JTextField("A");
panel.add(filterText, BorderLayout.CENTER);
frame.add(panel, BorderLayout.NORTH);
JButton button = new JButton("Filtrer");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String text = filterText.getText();
if (text.length() == 0) {
sorter.setRowFilter(null);
} else {
sorter.setRowFilter(RowFilter.regexFilter(text));
}
}
});
frame.add(button, BorderLayout.SOUTH);
frame.setSize(250, 200);
frame.setVisible(true);
}
}