3

SQL 選択結果セットからテーブルを作成する必要があります。結果セットが非常に大きくなる可能性があるため、ページング機能をテーブルに追加したいと考えています。SQL レベルでページングを行う方法については、多くの議論がありました。しかし、GUI レベルでページングを実装する方法は? 私には2つのアイデアがあります:

  1. Web UI スタイルでページングを行います。たとえば、Google 検索結果のページングです。
  2. 「Excel スタイル」 - ユーザーが下にスクロールすると、テーブルが存在するスクロール ペインが拡張されます。

2 番目のものは見た目は良いですが、実装が複雑です。ユーザーが待機しないように、データの次のチャンクの SQL 選択を実行するタイミング。「先読み」ロジックが必要ですか?ユーザーが非常に速くスクロールするとどうなりますか? 一定のメモリ使用量を確保するために、表示されなくなった行をどうするか? たぶん、そのようなテーブルコンポーネントまたは良い例がすでにありますか? それとも、この見栄えの良いテーブル機能は、実装する価値がないのでしょうか?

4

2 に答える 2

1

TableModelですべてを直接行うことができ、UIで何かを変更する必要はありません(UIに何か(ステータス)を表示することもできますが、JTableのレンダリング方法を変更する必要はありません)。

次のJDBCTableModelを実装するだけです。

  • 結果をカウントし、この値をgetRowCount()として返します。
  • ページX(行Xから行X + page_size)をメモリに取り込むバックグラウンドスレッドがあります
  • ビュー(JTable)がそこにない行(ページがロードされていない)を要求した場合は、左上隅または右隅のどこかに「データを読み込んでいます...」というメッセージを表示し、空のセルを返します。

ページングは​​Swingアプリケーションには意味がありません。現在の豪華なAJAXライブラリがテーブルスクロールを実装する前に発明されました(http://www.ext-livegrid.com/を参照)。

于 2009-06-01T16:05:48.247 に答える
0

AJAXライブラリ用のページングテーブルを作成した人々は明らかにこれについて多くのことを考えていたので、すでに作成されたものが見つからない場合は、それらから学ぶことができるかもしれません。Javaを使用しているので、JavaforGWTで記述されたページングテーブルを見つけることができることに注意してください。これらのSOスレッドを参照してください。

GWTページングウィジェット

GWTでの最高のページング可能なテーブルの実装

実装のアイデア(およびコードの多く)は、前述のオープンソースプロジェクトで見つけることができます。

于 2009-06-02T03:42:53.990 に答える