シナリオ:
カスタム TableModel で JTable を使用して、データベースやネットワークなどにあるコレクションの内容を表示しています。
これを機能させる強引な方法は、コレクション全体を一度にロードすることです。必要なリソースのために、それは実用的ではないとしましょう。
この問題を回避する簡単な方法は、JTable が各行をレンダリングし、TableModel.getValueAt(); を呼び出すときに、必要に応じて一度に 1 行ずつ行をフェッチすることです。必要に応じてキャッシュします。ただし、これにより、データベースに多くのヒットが発生します。
各セルをレンダリングする前に表示する行を把握するために、JTable のスクロール/ビューポート イベントをリッスンする方法はありますか? もしそうなら、カスタム TableModel をインターセプトして、一度に 1 ページずつプリフェッチさせたいと思います。
編集:明確にするために、ここでのポイントは、各行の内容を単独で取得するのではなく、表示されているテーブル行のグループの内容を 1 つのバッチで取得できるようにすることです。