0

これは一般的な質問ですが、私には特定のシナリオがあります<XYZ>。ハードウェア デバイスから JNI レイヤーを介してレコードを取得しています。これにより、数百万/膨大な数のレコードが得られ、それらすべてを SWT テーブルで処理することは、壁を混乱させるようなものです。クラッシュするだけです。

したがって、効率的なプログラミングのために、私は ScrollBar を使用し、UI サイズ wrt をスクロール バーに取り、それからその多くの特定のデータを入力し、スクロールバーを移動すると、再び次のデータのセットになりましたが、まったく効率的ではないことに気付きました。スクロールバーのすべての動きで、JNIレイヤーを介してハードウェアを呼び出していたため、非常に高価な方法です

少し時間ができたので、ロジックを更新することを考えました。効率的なアルゴリズムを教えてください。

Paging Strategy はなく、最後のレコードまで垂直スクロールバーだけです

百万は単なる数字であり、百万のレコードを持つことは必須ではありません。多数のレコードを入力するための効率的なアルゴリズムを知りたいだけです

4

2 に答える 2

1

私の記憶が正しければ、a の「問題」の 1 つは、JTableモデル全体をループして列のサイズを計算することです。そのため、スクロールバーを使用しても、最初にペイントするときに (視覚化された部分だけでなく) モデル全体をループします。

SwingXのJXTableを使用すると、列 ( ) にプロトタイプ値を設定して、TableColumnExt#setPrototypeValueこのループを回避できます。この値を設定すると、テーブルの作成時間を大幅に改善できます。

于 2012-07-30T07:53:16.753 に答える
0

データを効率的に表現するために、ある種のデータストアを使用していると思います。データによって異なりますが、カスタム オブジェクトの配列が適している場合があります。次に、これを独自のカスタムTableModelにラップし、残りは Swing に任せます。表示されないデータには、リソースはまったく必要ありません。

于 2012-07-30T06:59:05.180 に答える