带有行过滤器的JTable-如何仅对过滤的行进行迭代

我在做伯吉特

我有一个JTable,其中行被RowFilter过滤(行B被隐藏)。

如何仅对可见行(而不是隐藏的B行)进行迭代

不幸的是,下面的示例也打印了我想跳过B行。

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.RowFilter;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;
import javax.swing.JButton;
import java.awt.BorderLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class JTableFilterDemo {
    public static void main(String[] args) {
        Object[][] data = { { "A", 5 }, { "B", 2 }, { "C", 4 }, { "D", 8 } };
        String columnNames[] = { "Item", "Value" };
        TableModel model = new DefaultTableModel(data, columnNames) {
            public Class<?> getColumnClass(int column) {
                return getValueAt(0, column).getClass();
            }
        };
        JTable table = new JTable(model);

        RowFilter<Object, Object> filter = new RowFilter<Object, Object>() {
            public boolean include(Entry entry) {
                Integer population = (Integer) entry.getValue(1);
                return population.intValue() > 3;
            }
        };

        TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(
                model);
        sorter.setRowFilter(filter);
        table.setRowSorter(sorter);
        JScrollPane scrollPane = new JScrollPane(table);
        JFrame frame = new JFrame("Filtering Table");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JButton btnNewButton = new JButton("Print values");
        btnNewButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                for(int row = 0;row < table.getModel().getRowCount();row++) {
                        System.out.println(table.getModel().getValueAt(row, 0));
                }
            }
        });
        frame.getContentPane().add(btnNewButton, BorderLayout.SOUTH);
        frame.getContentPane().add(scrollPane);
        frame.setSize(300, 200);
        frame.setVisible(true);
    }
}
我在做伯吉特

线

         for(int row = 0;row < table.getModel().getRowCount();row++) {
                    System.out.println(table.getModel().getValueAt(row, 0));
            }

应替换为:

            for(int row = 0;row < table.getRowCount();row++) {
                System.out.println(table.getModel().getValueAt(table.convertRowIndexToModel(row), 0));
            }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

带有列表的Django过滤器过滤器

来自分类Dev

如何对过滤器进行单元测试?

来自分类Dev

带有多个过滤器的ElasticSearch

来自分类Dev

带有过滤器的GetPivotData

来自分类Dev

带有过滤器的mdChips

来自分类Dev

带有lodash的过滤器数组

来自分类Dev

带有 manytomanyfield 的 Django 过滤器

来自分类Dev

ng-repeat过滤器仅对具有某些属性值的元素进行迭代

来自分类Dev

带有多个过滤器的过滤表

来自分类Dev

带有多个过滤器的过滤表

来自分类Dev

带有RecyclerView过滤的SearchView过滤器,结果错误

来自分类Dev

ElasticSearch 5.1 带有多重过滤器的过滤查询

来自分类Dev

如何在 Excel 中基于带有宏的过滤器绘制 3 行?

来自分类Dev

如何编写带有“除非”的SQL查询过滤器?

来自分类Dev

JMESPath如何编写带有多级过滤器的查询?

来自分类Dev

如何为带有标签的图像创建过滤器?

来自分类Dev

如何使用带有功能Javascript的过滤器

来自分类Dev

如何计算带有窗函数的过滤器的总数?

来自分类Dev

如何对过滤后的 ListBox 进行排序

来自分类Dev

带有搜索输入的jQuery Json过滤器,无需使用任何过滤器插件

来自分类Dev

带有排除选项的 angularjs 过滤器('过滤器')

来自分类Dev

同时排序,行过滤器和带有data.table的列选择

来自分类Dev

grep 对过滤器文件名进行排序

来自分类Dev

如何对过滤器的结果进行ng-repeat值

来自分类Dev

如何按集合的嵌套属性对过滤器选项进行分组。单选框

来自分类Dev

如何使用angularjs对过滤器进行ng-repeat?

来自分类Dev

Ruby中带有额外过滤器的Activerecord关系

来自分类Dev

带有过滤器的Spring数据ElastiSearch聚合

来自分类Dev

汇总带有其他(不同)过滤器的列

Related 相关文章

热门标签

归档