AbstractTableModel と SwingWorker を使用してデータベース データを Swing テーブルに効率的に表示する方法

Mary-Kate Olsen
リリース: 2024-11-11 13:11:02
オリジナル
801 人が閲覧しました

How to Efficiently Display Database Data in a Swing Table Using AbstractTableModel and SwingWorker?

AbstractTableModel GUI 表示の問題

前述の問題は、データベース アクセスの非同期の性質と、バックグラウンドで行を取得する必要があるために発生します。イベントディスパッチスレッドのブロックを回避します。 SwingWorker は、このプロセスを容易にします。

解決策:

次のワークフローを実装します。

  1. SwingWorker インスタンス。
  2. 次を使用して中間結果を公開します。 public().
  3. process() のテーブルモデルにパブリッシュされた行を追加します。

洗練された実装:

  • AbstractTableModel をカスタムで拡張するJDBCModel.
  • JDBCModel 内に JDBCWorker クラスを作成し、行の取得をデータベースに委任します。
  • JDBCWorker は行をモデルに公開し、EDT 上の GUI を更新します。
  • モデルからの行の削除を JDBCModel の delete() まで延期します。
  • データベースから行を正常に削除した後、fireTableRowsDeleted() を使用します。

追加の推奨事項:

  • ライブで実装するビューでフィルタリングしてユーザー エクスペリエンスを向上させます。
  • getPreferredScrollableViewportSize() をオーバーライドして、テーブルの優先ビューポート サイズを設定します。
  • TableModel などの一般的な API 名との名前の衝突を回避します。

以上がAbstractTableModel と SwingWorker を使用してデータベース データを Swing テーブルに効率的に表示する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート