Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JTable筛选器数据_Java_Swing_Jtable_Keylistener_Rowfilter - Fatal编程技术网

Java JTable筛选器数据

Java JTable筛选器数据,java,swing,jtable,keylistener,rowfilter,Java,Swing,Jtable,Keylistener,Rowfilter,我无法将筛选器正确应用于JTable private static TableRowSorter<SQLiteTableModel> sorter = null; ... private void jTFSearchOtherKeyPressed(java.awt.event.KeyEvent evt) { jTableOther.setRowSorter(sorter); Stri

我无法将筛选器正确应用于JTable

private static TableRowSorter<SQLiteTableModel> sorter = null;
...
private void jTFSearchOtherKeyPressed(java.awt.event.KeyEvent evt) {                                          

    jTableOther.setRowSorter(sorter);
    String text3 = jTFSearchOther.getText();
    if (text3.length() == 0) {
        sorter.setRowFilter(null);
    } else {
        sorter.setRowFilter(RowFilter.regexFilter(text3));
    }
} 
在线137

@Override
    public Object getValueAt(int row, int column) {
        return contents[row][column];
    }

内容数组可能有其他引用,而不是应用筛选器时模型所要求的引用, 所以试试这个

public Object getValueAt(int row, int column) {

        if(contents.length>row && contents[row].length>column)
        return contents[row][column];
        return null;//must solve this issue when object not found
    }

这里进行过滤

    private void updateTableManager() throws SQLException {

    SQLiteTableModel modelManager;

    modelManager = new SQLiteTableModel(connectDB, "VIEW_MANAGER");

    jTableManager.setModel(modelManager);

    sorter = new TableRowSorter<>(modelManager);

    sorter.setComparator(2, new SQLiteComparator());

    jTableManager.setRowSorter(sorter);
}
private void updateTableManager()引发SQLException{
sqlitetablemodelmodelmanager;
modelManager=新的SQLiteTableModel(connectDB,“视图管理器”);
jTableManager.setModel(modelManager);
分拣机=新表格行分拣机(modelManager);
setComparator(2,新的SQLiteComparator());
jTableManager.setRowSorter(分拣机);
}
这里没有

    private void updateTableWorker() throws SQLException {

    SQLiteTableModel modelWorker;

    modelWorker = new SQLiteTableModel(connectDB, "VIEW_MANAGER_WORKER");

    jTableManagerWorker.setModel(modelWorker);

    sorter = new TableRowSorter<>(modelWorker);

    sorter.setComparator(2, new SQLiteComparator());

    jTableManagerWorker.setRowSorter(sorter);
}
private void updateTableWorker()引发SQLException{
SQLiteTableModelWorker;
modelWorker=新的SQLiteTableModel(connectDB,“视图\管理者\工作者”);
jTableManagerWorker.setModel(modelWorker);
分拣机=新的表格行分拣机(modelWorker);
setComparator(2,新的SQLiteComparator());
jTableManagerWorker.setRowSorter(分拣机);
}

很抱歉,没有足够的信息来帮助解决此问题。考虑发布一个。也不要使用KeyListener。改用DocumentListener。您的异常是由SQLiteTableModel中的错误引起的。这是您应该发布的代码。请下载该应用程序,它不是一个病毒。请通过发布相关代码来明确您的问题。我们不会下载任何东西。当您从驱动器中删除文件时,您的问题将不再有意义。错误答案(已接受的答案无法删除)不是关于将DocumentListener添加到JTextField,有关阅读Oracle官方教程如何使用表、部件排序和筛选的更多信息,特别是对于SSCCE/MCVE表单中的工作代码示例,在访问它之前检查是否存在数组索引有什么错,第一次我没有回答,我说了“may”,这是为了避免索引越界异常
    private void updateTableWorker() throws SQLException {

    SQLiteTableModel modelWorker;

    modelWorker = new SQLiteTableModel(connectDB, "VIEW_MANAGER_WORKER");

    jTableManagerWorker.setModel(modelWorker);

    sorter = new TableRowSorter<>(modelWorker);

    sorter.setComparator(2, new SQLiteComparator());

    jTableManagerWorker.setRowSorter(sorter);
}