Unterschied in JComboBox und JSpinner

8

Ich schreibe ein Java-Desktop-Dienstprogramm in Java-Swing und habe einen minimalen GUI-Teil darin, die meiste Arbeit wird auf Serverseite getan, d. h. Backend. Also möchte ich nicht viel Zeit mit dem GUI-Teil verbringen und verschiedene Steuerelemente und Widgets lernen. Das Problem ist, dass Swing zwei Steuerelemente für (für mich) die gleichen Aufgaben hat, dh Dropdown-Menü, und sie sind JComboBox und JSpinner Ich kenne den Unterschied nicht und ich möchte keine Einschränkung, die mich daran hindern würde, meine Aufgabe, nachdem ich eine ausgewählt habe.

Ich muss das Dropdown-Menü verwenden, um List<String> anzuzeigen, das von DataBase zurückgegeben wurde, und es können Tausende von Werten enthalten sein. Um den Benutzer vom Scrollen abzuhalten, nehme ich das Startalphabet als Eingabe, oder es wird eine Kategoriebeschränkung geben. Daher kann es sein, dass ich bestimmte Werte verwende, die von List<String> angezeigt werden. Ich möchte, dass mein Programm so effizient wie möglich ist und am wenigsten Zeit für das Frontend benötigt, da es viele Operationen im Backend gibt.

Jede Hilfe wird sehr geschätzt

    
moCap 10.09.2012, 13:23
quelle

3 Antworten

4
  

Ich muss das Dropdown-Menü verwenden, um die Liste anzuzeigen, die von DataBase zurückgegeben wurde, und sie kann Tausende von Werten enthalten.

  • alle oben genannten JComponents basieren auf einem vorzeitigen Array, müssen möglicherweise java.util.List in String[] oder Vector konvertieren (abhängig von Ihren Code-Logiken)

  • Keine der grafischen Benutzeroberflächen ist für Tausende von Werten vorgesehen, siehe Paginations for Databases engine

  • oben erwähnt AutoComplete JComboBox / JTextField funktioniert ohne Probleme bis zu 2k Zeilen auf den heutigen PCs

  • für die Suche oder die Auswahl aus den größten Arrays, die Sie gesehen haben Stepped JComboBox (ungefähr zwei oder mehr JComboBoxes )

    1.st für reduzierte Auswahl von [0-9, A-Z]

    2. nd für die Suche in Aufzeichnungen gestartet with A (zum Beispiel)

  • Redirect Database Ereignisse zu den Hintergrundaufgaben und SwingWorker oder Runnable#Thread

  • zu verwenden
mKorbel 10.09.2012, 13:34
quelle
4

Der Hauptunterschied liegt im Modell: a SpinnerModel Implementation erstellt eine Sequenz von Werten, während eine ComboBoxModel nicht. Wenn Objekte in SpinnerModel keine geeignete natürliche Reihenfolge haben, müssen Sie eine vorgeben.

Aus praktischen Gründen werden "Tausende von Werten" von einem Hilfsansatz profitieren, wie in der Antwort von @mKorbel vorgeschlagen.

    
trashgod 10.09.2012 16:28
quelle
2

JComboBox entspricht Ihrer Anforderung. JComboBox eignet sich zum Anzeigen einer Werteliste. JSpinner wird verwendet, wenn Sie einige Funktionen wie Eingabe / Dekrement im Textfeld des Drehfelds ausführen möchten.

Dieses Oracle-Lernprogramm erklärt über JSpinner und seine Ähnlichkeiten mit JComboBox . Es gibt auch eine Demo-App.

    
basiljames 10.09.2012 13:31
quelle

Tags und Links