0

私はJTableを含むプロジェクトに取り組んでおり、そのプロジェクトで並べ替えとフィルタリングの操作を実行しています。並べ替えとフィルタリングの部分は終了しました。古いテーブルの現在のビューから新しいテーブルを作成できるようにしたいと思います。
たとえば、古いテーブルに特定のフィルターを適用すると、一部の行がフィルターで除外されます。新しいテーブルでこれらの除外された行は必要ありません。新しい行インデックスをモデルインデックスに変換し、セル値を新しいテーブルのモデルに手動で追加できると思いましたが、これを行う他の効率的な方法があるかどうか疑問に思いました。
以下は私がやったことです:

//this code block will print out the rows in current view
int newRowCount = table.getRowCount();
int newColumnCount = table.getColumnCount();
for (int i = 0; i < newRowCount; i++) {
    for (int j = 0; j < newColumnCount; j++) {
    int viewIndex = table.convertRowIndexToModel(i);
    String value = (String) model.getValueAt(viewIndex, j);
    System.out.print(value + "\t");

    }
    System.out.println();

}
4

1 に答える 1

1

インデックス変換の必要はありません。基になるモデルの代わりにテーブルにクエリを実行するだけです

for (int i = 0; i < table.getRowCount(); i++) {
    for (int j = 0; j < table.getColumnCount(); j++) {
        Object value = table.getValueAt(i, j);
        System.out.print(value + "\t");
    }
}

注: 読みやすくするために i/j の名前を行/列に変更した方がよいでしょう。怠惰すぎました ;-)

于 2011-05-09T10:29:17.473 に答える