簡體   English   中英

JTable RowFilter顯示錯誤的行

[英]JTable RowFilter displays wrong rows

我正在使用自定義類擴展RowFilter來基於列中的布爾值過濾我的表

public class MyRowFilter extends RowFilter<Object, Integer> {

    @Override
    public boolean include(Entry entry) {

        return (boolean) entry.getValue(0));
    }
}

我這樣分配給表

TableRowSorter<TableModel> tableRowSorter = new TableRowSorter();
myRowFilter = new MyRowFilter(myTableModel);
tableRowSorter.setRowFilter(myRowFilter);
myTable.setRowSorter(platformTableRowSorter);

但是我在表單上得到的只是myTable的前N行(一段時間,include()返回true),而不是include()返回true的那一行。

什么會導致這種行為?

 String table_event = table_job.getModel().getValueAt(table_job. convertRowIndexToModel(row), 0).toString()); 

 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; 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); frame.add(scrollPane); frame.setSize(300, 200); frame.setVisible(true); } } 

看到這個代碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM