8

私はJavaSwingでJavaDesktopユーティリティを作成しており、最小限のGUIパーツが含まれています。ほとんどの作業は、サーバー側、つまりバックエンドで行われます。そのため、GUIの部分に多くの時間を費やして、さまざまなコントロールやウィジェットを学習したくありません。問題は、Swingには(私にとって)同じタスク用の2つのコントロール、つまりドロップダウンメニューがあり、それらはJComboBox違いJSpinnerがわからないことです。選択した後にタスクを完了するのを妨げるような制限は必要ありません。 1。

ドロップダウンを使用しList<String>てデータベースから返された値を表示する必要があり、何千もの値を持つことができます。ユーザーがスクロールしないようにするために、入力として開始アルファベットを使用するか、カテゴリの制限があるため、から表示される特定の値を使用している可能性がありますList<String>。私は自分のプログラムを可能な限り効率的にし、バックエンドには多くの操作があるのでフロントエンドに費やす時間を最小限に抑えたいと思っています。

どんな助けでも大歓迎です

4

3 に答える 3

4

ドロップダウンを使用して、データベースから返されたリストを表示する必要があります。リストには数千もの値を含めることができます。

  • 上記のすべてJComponentsは時期尚早の配列に基づいており、おそらくまたはに変換java.util.Listする必要があります(コードロジックによって異なります)String[]Vector

  • 何千もの値を保持するように指定されているGUIはありません。Paginations for Databases engine

  • 上記はAutoComplete JComboBox / JTextField問題なく動作します。今日のPCでは最大2k行です。

  • あなたが見た中で最も大きな配列からの検索または選択のためにStepped JComboBox(約2つ以上JComboBoxes

    1.stからの選択を減らす[0-9, A-Z]

    開始されたレコードを検索するための2.nd with A(例)

  • Databaseイベントをバックグラウンドタスクにリダイレクトし、SwingWorkerまたはRunnable#Thread

于 2012-09-10T13:34:41.617 に答える
4

主な違いはモデルにあります。SpinnerModel実装は値のシーケンスComboBoxModelを作成しますが、は作成しません。のオブジェクトにSpinnerModel適切な自然の順序がない場合は、それを課す必要があります。

実際問題として、@ mKorbelの回答で示唆されているように、「数千の値」は補助的なアプローチの恩恵を受けます。

于 2012-09-10T16:28:10.317 に答える
2

JComboBox要件に適合します。JComboBox値のリストを表示するのに適しています。JSpinnerは、Spinnerのテキストフィールドでインクリメント/デクリメントなどの機能を実行する場合に使用されます。

このOracleチュートリアルJSpinnerでは、との類似点について説明しJComboBoxます。デモアプリもあります。

于 2012-09-10T13:31:16.467 に答える