Startup
This commit is contained in:
74
plugins/FilterTable.java
Normal file
74
plugins/FilterTable.java
Normal file
@@ -0,0 +1,74 @@
|
||||
import javax.swing.*;
|
||||
import javax.swing.table.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
import java.util.regex.*;
|
||||
|
||||
public class FilterTable {
|
||||
public static void main(String args[]) {
|
||||
Runnable runner = new Runnable() {
|
||||
public void run() {
|
||||
JFrame frame = new JFrame("Sorting JTable");
|
||||
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
Object rows[][] = {
|
||||
{"AMZN", "Amazon", 41.28},
|
||||
{"EBAY", "eBay", 41.57},
|
||||
{"GOOG", "Google", 388.33},
|
||||
{"MSFT", "Microsoft", 26.56},
|
||||
{"NOK", "Nokia Corp", 17.13},
|
||||
{"ORCL", "Oracle Corp.", 12.52},
|
||||
{"SUNW", "Sun Microsystems", 3.86},
|
||||
{"TWX", "Time Warner", 17.66},
|
||||
{"VOD", "Vodafone Group", 26.02},
|
||||
{"YHOO", "Yahoo!", 37.69}
|
||||
};
|
||||
Object columns[] = {"Symbol", "Name", "Price"};
|
||||
TableModel model =
|
||||
new DefaultTableModel(rows, columns) {
|
||||
public Class getColumnClass(int column) {
|
||||
Class returnValue;
|
||||
if ((column >= 0) && (column < getColumnCount())) {
|
||||
returnValue = getValueAt(0, column).getClass();
|
||||
} else {
|
||||
returnValue = Object.class;
|
||||
}
|
||||
return returnValue;
|
||||
}
|
||||
};
|
||||
JTable table = new JTable(model);
|
||||
final TableRowSorter<TableModel> sorter =
|
||||
new TableRowSorter<TableModel>(model);
|
||||
table.setRowSorter(sorter);
|
||||
JScrollPane pane = new JScrollPane(table);
|
||||
frame.add(pane, BorderLayout.CENTER);
|
||||
JPanel panel = new JPanel(new BorderLayout());
|
||||
JLabel label = new JLabel("Filter");
|
||||
panel.add(label, BorderLayout.WEST);
|
||||
final JTextField filterText =
|
||||
new JTextField("SUN");
|
||||
panel.add(filterText, BorderLayout.CENTER);
|
||||
frame.add(panel, BorderLayout.NORTH);
|
||||
JButton button = new JButton("Filter");
|
||||
button.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
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");
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
frame.add(button, BorderLayout.SOUTH);
|
||||
frame.setSize(300, 250);
|
||||
frame.setVisible(true);
|
||||
}
|
||||
};
|
||||
EventQueue.invokeLater(runner);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user