Tag: rowfilter

选中了用于过滤JTable的按钮

我有一个与此相似的JTable。 http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#sorting 我已经设法在它上面设置了一个普通的filter(一个搜索function),它运行良好。 我想要一个按钮,它会立即显示检查素食的行。 好的,现在感谢@peeskillet和@HovercraftFullOfEels提供的帮助,这是我的问题的解决方案: final TableRowSorter rowSorter = new TableRowSorter(tableModel); // custom RowFilter RowFilter filter = new RowFilter() { // include method returns true to show the row and false to not show it @Override public boolean include(RowFilter.Entry entry) { int modelRow = entry.getIdentifier(); //row index boolean checked = ((Boolean)entry.getModel().getValueAt(modelRow, 3)).booleanValue(); System.out.println(checked); // to […]

非常大的JTable,RowFilter和额外的负载

我想要求澄清RowFilter的使用及其对性能的影响。 我通过方法include(Entry)实现了一个filter,对于每一行,只需检查模型中的对应值是否设置了布尔标志:如果是,则返回true,否则返回false。 现在,我拥有的JTable可能相当大(1000000+行),我不确定应用于如此大的输入集的这种简单过滤是否成本高昂。 过滤行和基础数据之间的映射如何正常工作? 我的意思是,它是否存储任何额外的数据,或者它只是“动态”绘制与filter匹配的行? 非常感谢您的澄清。

JTable中列的多个单元格渲染器?

假设我有以下JTable,只要按下按钮就会显示: | Name ——+———— True | Hello World False | Foo Bar True | Foo False | Bar 我想渲染最初为JCheckBox的单元格,以及最初为 false的所有单元格都不显示任何内容(没有JCheckBox)。 用户可以检查或取消检查最初为真的单元格中的JCheckBox,这将对我创建的图表起作用。 现在,我的单元格渲染器在所有单元格中显示JCheckBoxes,包括最初为假的那些(它显示那些没有复选标记的JCheckBox),但我想在后者中不显示任何内容。 这是我的代码: protected class CheckBoxCellRenderer extends JCheckBox implements TableCellRenderer { public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { if (!(Boolean) tableModel.getValueAt(row, 0)) { NoCheckBoxCellRenderer renderer = new […]

将搜索textField实现为jTable

现在我有一个用KeyReleased事件实现的搜索textField,当我开始输入例如“安德鲁”中的“An”时,我没有找到/更新jTable,就在我完成键入(caseSensitive)我想要的名字之后找。 所以,我想要的是从这个网站实现过滤方法,但我有很大的问题。 在以下实现并删除“旧”KeyReleased事件后,当我在textfield“txt_search”中输入内容时,jTable没有任何反应。 我的IDE(NetBeans)生成的表代码是(从自定义代码面板复制): Table_Employee = new javax.swing.JTable(); Table_Employee.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { {null, null, null, null}, {null, null, null, null}, {null, null, null, null}, {null, null, null, null} }, new String [] { “Title 1”, “Title 2”, “Title 3”, “Title 4” } ) ); Table_Employee.setToolTipText(“Employee info table”); Table_Employee.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); Table_Employee.getTableHeader().setReorderingAllowed(false); Table_Employee.addMouseListener(new java.awt.event.MouseAdapter() { […]

RowFilter.NumberFilter:无法处理“混合”具体数字类型

如果至少有一个值(值= = RowFilter中的值,条目中的值)是小数,则会发生。 这是一个失败的测试: @Test public void testRowFilterNumberMixCore() { TestEntry entry = new TestEntry(1.2f); RowFilter filter = RowFilter.numberFilter(ComparisonType.AFTER, 1, 0); assertTrue(entry + “must be included ” + filter, filter.include(entry)); } 输出是: junit.framework.AssertionFailedError: 必须包含[entry:1.2] [RowFilter:ComparisonType = AFTER,equivalentValue:1,comparativeClass:class java.lang.Integer] 原因是NumberFilter回退到将数字与它们的数字进行比较.longValue()如果它们不是同一个类(并且可以相互比较) 知道了这个细节,测试失败并不令人惊讶(在后视中,从未想过这是一个问题;-)一个级别的防御是确保 – 在客户端代码中 – 要比较的数字是相同的类。 这并不总是可能的(想想fi:tableColumn with columnClass Number)所以我想知道是否/如何改进后备。 就像是: if (one instanceof Comparable && one.getClass() == […]

如何过滤JTable中的行?

我有一个JTable,其中包含许多字符串。我在表格上方创建了一个用于用户输入的文本框。 我想要一个行filter,可以删除用户在文本框中输入的行。 请帮我解决这个问题。

Java swing toggle按钮用于过滤jtable行

我有一个JTable ,它包含一个自定义的AbstractTableModel ,它在调用getValueAt时返回一个对象。 当然,我有一个自定义的TableCellRenderer ,它能够从对象获取/构造文本,以便显示它。 但是现在我想写一个filter。 filter将是一个简单的切换按钮。 当它打开时,我希望应用filter,当它关闭时,我想filter被删除。 由于这个原因,我有两个问题。 首先,当你必须按对象而不是基元进行过滤时,我完全不知道如何编写filter。 其次,我不知道如何将所述filter连接到切换按钮,以便能够打开和关闭它。 我很抱歉,如果这是一个迟钝的问题,但http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#sorting是我看到的最无用的文档,因为解释不深入。 感谢任何人的帮助。 编辑:该对象包含多个字段,但我特别感兴趣的是两个filter切换。 当我说isSuper ,一个返回一个boolean值,当我调用getName时,第二个返回一个string 。 如果打开第一个切换,它应该显示在isSuper上返回true的所有条目,第二个切换应该显示当我调用getName时名称被泄露为两个单词(存在空格)的所有条目。

如何在JTable上执行不区分大小写的filter?

我正在制作一个带有文本字段的表格,您可以在其中输入单词来过滤表格。 它有效,但我想要做的是能够用输入的单词过滤它,但忽略单词的情况。 有没有办法在不创建自定义RowFilter情况下完成此操作? 您可以运行此SCCEE以查看我正在谈论的内容。 我想能够输入usa ,它将过滤USA 。 import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JApplet; import javax.swing.JButton; 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.TableModel; import javax.swing.table.TableRowSorter; public class TestTableSortFilter extends JApplet { private String[] columnNames = {“Country”, “Capital”, “Population in Millions”, “Democracy”}; private Object[][] data = { {“USA”, […]