1

JScrollPaneに配置する代わりに、独自のスクロールを処理するJTableのSwingベースの代替手段を誰かが知っているかどうか疑問に思いました。

その理由を説明させてください。私は現在、データベースから最大1.6GBのデータを表形式で表示する必要があるプロジェクトに取り組んでいます。私は先週半、JTableとそれに関連するすべてのクラスの調査に費やしました。私が学んだことは、JTableが以下の理由で不十分であると私に信じさせます。

データセットが大きすぎて画面に表示できないJTableは、JScrollPaneに配置する必要があります。これは、大きすぎて画面に収まらないコンポーネント上で移動ウィンドウとして機能します。これは、ページングを使用しない非常に大きなJTableを持つことができるという要件を満たします。ただし、JTable全体が引き続き作成されるため、TableModelはすべてのデータを要求されます。私はその点で間違っているかもしれませんが、私の実際の経験とこのようなものの基盤に関するドキュメントの欠如は、私がそうではないことを示唆しています。

データベースからページングされ、TableModel側にキャッシュされた(約100〜300レコードのみ)巨大なデータセットを継続的にスクロールするJTableが必要です(注意を払ってください!これは重要な部分です)は、テーブルの表示領域。私の経験では、JScrollPaneの標準のJTableは、表示されているものに関係なくすべてのデータを要求し、バックエンドのページングが機能しないようにします。私が間違っていると言って、実用的な反例を見せてください。または、必要な方法で動作するサードパーティのコンポーネントを教えてください。

4

1 に答える 1

4

実装は、データ モデルを管理しやすい部分に分割する方法に依存するため、これに対する汎用的なソリューションはありません。ここで提案されているようにList<Record>、メソッドを使用して任意のパーティションを分割できますsubList()ここに示すように、各パーティションを構成する個々のモデルを公開できます。SQL を使用したこの代替アプローチも参照してください。

ページングではなく、連続スクロールが必要です。

の実装では、このまたはAPIに示すように、ビューを継続的に更新するTableModelを使用できます。SwingWorker

于 2012-11-01T18:45:27.867 に答える