import java.awt.BorderLayout; import java.awt.event.*; import java.util.regex.PatternSyntaxException; import javax.swing.*; import javax.swing.table.*; public class MyFrame { DefaultTableModel mymodel; JTable table; JTextField filterText; JScrollBar verticalScrollBar; boolean isInDown=true; public MyFrame (){ JFrame frame = new JFrame("Sorting JTable"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Object columns[] = {".", "..", "..."}; mymodel = new DefaultTableModel(null, columns); table = new JTable(mymodel); JScrollPane pane = new JScrollPane(table); final TableRowSorter sorter = new TableRowSorter(mymodel); table.setRowSorter(sorter); new ThreadAjout(this, "un"); new ThreadAjout(this, "deux"); new ThreadAjout(this, "trois"); new ThreadAjout(this, "quatre"); new ThreadAjout(this, "cinq"); new ThreadAjout(this, "six"); new ThreadAjout(this, "sept"); new ThreadAjout(this, "huit"); new ThreadAjout(this, "neuf"); frame.add(pane, BorderLayout.CENTER); JPanel panel = new JPanel(new BorderLayout()); JLabel label = new JLabel("Filter"); panel.add(label, BorderLayout.WEST); filterText = new JTextField(); filterText.addKeyListener(new KeyListener() { @Override public void keyTyped(KeyEvent arg0) { } @Override public void keyReleased(KeyEvent arg0) { String text = filterText.getText(); if (text.length() == 0) { sorter.setRowFilter(null); } else { try { sorter.setRowFilter(RowFilter.regexFilter(text)); } catch (PatternSyntaxException pse) { System.err.println("Bad regex pattern"); } } } @Override public void keyPressed(KeyEvent arg0) { } }); panel.add(filterText, BorderLayout.CENTER); frame.add(panel, BorderLayout.NORTH); frame.setSize(300, 250); frame.setVisible(true); } /** * @return the table */ public JTable getTable() { return table; } /** * Inserer des donnees dans la table * @param rows les donnees a inserer */ public synchronized void insertRows(Object []rows){ this.getMymodel().addRow(rows); } /** * @return the filterText */ public JTextField getFilterText() { return filterText; } /** * @return the mymodel */ public DefaultTableModel getMymodel() { return mymodel; } }