So verwenden Sie die JList-Funktion im Java-Anfänger-Tutorial

Nehmen wir an, Sie erstellen auf einer Webseite ein Adressformular, in dem Sie nach dem Bundesstaat gefragt werden, in dem ein Benutzer lebt. Möchten Sie wirklich alle 50 Bundesstaaten auf dem Formular auflisten, damit jemand aus ihnen auswählen kann? Schließlich nehmen diese Informationen zu viel wertvollen Platz auf der Seite ein und sorgen für unnötige Unordnung.

Was sollte man tun?

Die einfachste Lösung besteht darin, die JList-Funktion von Java zu verwenden, um ein Popup-Menü mit einer Liste von Zuständen zu erstellen, aus denen ein Benutzer auswählen kann. Die Auswahl ist getroffen, das Optionsfeld verschwindet und das Leben geht weiter.

Andererseits müssen Sie dazu die Besonderheiten der Verwendung von JList verstehen. Um Ihnen zu helfen, gehen wir im Folgenden auf die Grundlagen dessen ein, was Sie wissen müssen.

Schnelle Navigation
Was ist JList?JList-Konstruktoren und -MethodenJList-KonstruktorenJList-MethodenVerwenden von JList1. Erstellen eines Listenmodells2. Initialisieren einer Liste3. Listenzellen rendern4. Auswählen von Listenelementen5. Listenelemente hinzufügen und entfernenZusätzliche JList-FunktionenGeteilte FensterBox-LayoutListendaten-ListenerBenutzerdefinierte ModelleBeispiel-JListZusätzliche JList-Ressourcen

Was ist JList?

JList ist ein Tool in Java, mit dem Sie eine grafische Benutzeroberfläche (GUI) erstellen können, um eine Liste von Elementen anzuzeigen und einem Benutzer die Auswahl eines oder mehrerer dieser Elemente zu ermöglichen. Es handelt sich um eine Swing-Komponente, Teil eines größeren Toolkits zum Erstellen von Anwendungsprogrammierschnittstellen (APIs). Eine separate Komponente, ListModel, enthält die Daten für die angezeigte Liste.

JList

Das „J“ am Anfang von JList weist darauf hin, dass es sich um einen Nachkommen der JComponent-Klasse handelt, ebenso wie alle Tools, die die Swing-Architektur nutzen. Dazu gehören folgende Funktionen:

  • Tooltipps: Textfelder, die angezeigt werden, wenn sich der Cursor über einem Seitenelement befindet.

  • Barrierefreiheit: Methoden der Barrierefreiheitsschnittstelle sind enthalten.

  • Lackierinfrastruktur: Unterstützung für Rahmen und doppelte Pufferung visueller Elemente.

  • Komponentenspezifische Eigenschaften: Jedes von JComponent abgeleitete Objekt kann mit Name-Objekt-Paaren verknüpft werden.

  • Pluggable Look and Feel (L&F): Das Schnittstellendesign kann vom Programmierer bestimmt oder, falls gewünscht, vom Benutzer bei der Initiierung ausgewählt werden.

  • Handhabung von Tastenanschlägen: Definieren Sie Tastaturereignisse, um Aktionen automatisch auszulösen.

JList-Konstruktoren und -Methoden

Die API zur Verwendung von JList-Konstruktoren und -Methoden gliedert sich in vier Bereiche:

  • Listendaten werden initialisiert

  • Listendaten verwalten

  • Liste anzeigen

  • Listenauswahl verwalten

JList-Konstruktoren

Dies sind die gebräuchlichsten JList-Konstruktoren:

  • JList(): Erstellt ein schreibgeschütztes, leeres Modell.
  • JList(E[] listData): Zeigt die Elemente in einem angegebenen Array an.
  • JList(ListModel dataModel): Zeigt die Elemente eines angegebenen Nicht-Null-Modells an.
  • JList(Vector listData): Zeigt die Elemente eines angegebenen Vektors an.

JList-Methoden

Zu den gängigen Methoden, die mit JList-Konstruktoren verwendet werden, gehören:

  • getModel(): Gibt das Datenmodell zurück, das die anzuzeigenden Listenelemente enthält.
  • getSelectedIndex(): Gibt den kleinsten ausgewählten Zellenindex zurück.
  • setListData(E[] listData): Erstellt ein schreibgeschütztes ListModel.
  • setListData(Vector listData): Erstellt ein schreibgeschütztes ListModel aus einem Vektor.
  • addListSelectionListener(ListSelectionListener-Listener): Bei jeder Änderung einer Auswahl wird der angegebene Listener benachrichtigt.

Verwenden von JList

Abhängig von der relativen Größe, Komplexität und den visuellen Eigenschaften der Liste, die Sie anzeigen möchten, sind die Optionen von JList sowohl vielfältig als auch robust. Es gibt jedoch fünf grundlegende Schritte, die Sie jedes Mal durchlaufen müssen, wenn Sie die JList-Funktion verwenden:

  • Erstellen eines Listenmodells

  • Eine Liste initialisieren

  • Listenzellen rendern

  • Auswählen von Listenelementen
  • Listenelemente hinzufügen und entfernen

1. Erstellen eines Listenmodells

Bevor Sie die JList-GUI erstellen können, müssen Sie ein Modell für die Daten Ihrer Liste erstellen. Hierzu gibt es drei Möglichkeiten:

  • 1ListModel: Sie verwalten alle Elemente der Liste.
  • 2AbstractListModel: Sie verwalten die Listendaten.
  • 3DefaultListModel: Die meisten Listenelemente werden durch Standardparameter verwaltet.

2. Initialisieren einer Liste

Sobald Sie Ihr Modell ausgewählt haben, müssen Sie Code aus ListDialog.java verwenden, um die Liste zu initialisieren und ihr Array mit Elementen aus einem zuvor definierten Objekt zu füllen. Oder Sie können gemäß den oben aufgeführten Konstruktoren eine Liste aus einem Objekt oder Vektor gemäß der ListModel-Komponente erstellen.

Hier können Sie auch Anzeigeeigenschaften festlegen, z. B. das Hinzufügen eines Bildlaufbereichs oder die Art und Weise, wie der Text angezeigt wird: vertikal, vertikal mit Textumbruch oder horizontal mit Textumbruch.

3. Listenzellen rendern

Listenelemente werden angezeigt, indem ein Zellenrendererobjekt zum Formatieren von Symbolen und Zeichenfolgen über toString verwendet wird. Wenn Sie diese Anzeige anpassen möchten, müssen Sie die ListCellRenderer-Schnittstelle verwenden. Dadurch wird ein „Stempel“ erstellt, um Komponenten innerhalb einer JList-Zelle zu zeichnen, beispielsweise die Vordergrund- oder Hintergrundfarben.

4. Auswählen von Listenelementen

Die ListSelectionModel-Komponente verwaltet die Listenauswahloptionen. Standardmäßig umfasst dies die Möglichkeit, eine beliebige Anzahl von Elementen gemäß den drei folgenden Modi auszuwählen:

  • SINGLE_SELECTION: Es kann nur ein Element ausgewählt werden. Wenn ein zweites Element ausgewählt wird, wird die Auswahl des vorherigen Elements aufgehoben.
  • SINGLE_INTERVAL_SELECTION: Es können mehrere Elemente in einem zusammenhängenden Bereich ausgewählt werden. Wenn ein neuer Bereich ausgewählt wird, wird die Auswahl der vorherigen Elemente aufgehoben.
  • MULTIPLE_INTERVAL_SELECTION: Dies ist der Standardmodus, der die Auswahl einer beliebigen Kombination oder Anzahl von Elementen ermöglicht.

JList-Methoden

5. Listenelemente hinzufügen und entfernen

Listen können entweder veränderbar (veränderbar) oder unveränderlich (unveränderlich) sein. Wenn Sie alle 50 US-Bundesstaaten auflisten möchten, möchten Sie wahrscheinlich, dass diese Liste unveränderlich ist. Andererseits müssen Sie eine veränderbare Liste einrichten, wenn Sie im Laufe der Zeit Elemente hinzufügen oder daraus entfernen möchten, beispielsweise verschiedene Produkte oder Zahlungsoptionen.

Es gibt zwei grundlegende Möglichkeiten, dies zu tun:

  • insertElementAt: Fügen Sie das neue Element nach der aktuellen Auswahl oder am Anfang der Liste ein, wenn keine vorhandene Auswahl vorhanden ist.

  • DefaultListModel addElement: Fügen Sie das neue Element am Ende der Liste ein.

Zusätzliche JList-Funktionen

Abhängig von der Komplexität der Liste, auf die Benutzer zugreifen sollen, gibt es natürlich eine Reihe zusätzlicher Funktionen, die integriert werden können, sobald Sie die Grundlagen beherrschen:

  • Geteilte Scheiben
  • Box-Layout
  • Daten-Listener auflisten
  • Kundenspezifische Modelle

Geteilte Fenster

Mit JSplitPane können Sie zwei separate Komponenten entweder übereinander oder nebeneinander anzeigen. Beispielsweise könnten Sie in einer Nebeneinander-Anzeige Produktnamen im linken Bereich auflisten, und wenn der Benutzer eine Auswahl trifft, erscheint im rechten Bereich ein Bild des Produkts.

Um dies auszuprobieren, öffnen Sie Java Web Start (JDK 7 oder höher) und wählen Sie die Schaltfläche „Starten“ für SplitPaneDemo aus. Oder Sie können dieses von Oracle bereitgestellte Beispiel verwenden, um Ihre eigene Split-Pane-Liste zu kompilieren und auszuführen.

Box-Layout

Mit dem BoxLayout von JList können Sie alle Auswahlen in einer einzigen Box entweder in Reihen oder übereinander gestapelt unterbringen. Dies ähnelt FlowLayout, bietet jedoch leistungsfähigere Optionen wie das Verschieben und Neuanordnen von Elementen innerhalb der Box im Verhältnis zueinander.

Seien Sie sich bewusst: Sogar Oracle gibt zu, dass das manuelle Codieren von Box-Layouts schwierig sein kann, und schlägt vor, dass Sie die Verwendung des GroupLayout-Managers mit einem Builder-Tool wie NetBeans IDE in Betracht ziehen.

Listendaten-Listener

Wenn sich der Inhalt einer Liste ändert, handelt es sich um ein Datenereignis. Standardmäßig sind Listenmodelle unveränderlich. Um also einen Daten-Listener zu verwenden – oder überhaupt einen Bedarf daran zu haben – müssen Sie sicherstellen, dass Sie eine veränderbare Liste erstellt haben. Ein Beispiel für eine Aktion, die einen Listendaten-Listener erfordert, wäre das Anbieten der Möglichkeit für Benutzer, Artikel zu einer Online-Wunschliste hinzuzufügen.

Benutzerdefinierte Modelle

Standardmäßig funktionieren fast alle Swing-Komponenten anhand von Modellen. Beispielsweise verwendet eine Bildschirmschaltfläche eine Modelldatei, um ihr Bild, die Tastaturaktion, mit der sie verknüpft ist, und andere Eigenschaften zu speichern. Darüber hinaus können Komponenten mehrere Modelle verwenden. Beispielsweise verwendet eine Liste ein Modell, um die vorhandene Auswahl eines Benutzers zu verfolgen, während ein anderes Modell für Listendaten verwendet wird.

Wenn Sie Benutzern also erlauben möchten, Daten einzugeben, die dann für sie weiter bearbeitet werden, müssen Sie ein benutzerdefiniertes Modell erstellen. Vielleicht haben Sie zum Beispiel einen Temperaturkonverter. Benutzer könnten Grad in Fahrenheit eingeben und das von Ihnen erstellte Modell würde dies in eine Celsius-Maßeinheit umwandeln. Oder Sie könnten Benutzern erlauben, Pfund in Kilogramm, Meilen in Kilometer usw. umzurechnen.

Codes

Beispiel-JList

Nachdem wir nun einen Teil der Theorie behandelt haben, ist hier der Code für eine einfache JList-GUI, die eine Liste von vier Autoherstellern anzeigt:

import javax.swing.*;

öffentliche Klasse ListDemo

{

ListDemo(){

JFrame f= new JFrame();

DefaultListModel l1 = new DefaultListModel<>();

l1.addElement(„Audi“);

l1.addElement(„Chevrolet“);

l1.addElement(„Ford“);

l1.addElement(„Mercedes“);

JList list = new JList<>(l1);

list.setBounds(150,150, 100,100);

f.add(list);

f.setSize(500,500);

f.setLayout(null);

f.setVisible(true);

}

public static void main(String args[])

{

new ListDemo();

}

}

Denken Sie daran, dass der Code länger und komplexer wird, wenn Sie der GUI Ihrer Liste mehr Schnickschnack hinzufügen.

Zusätzliche JList-Ressourcen

Da Java Open Source ist, stehen Programmierern viele Ressourcen zur Verfügung, angefangen bei Oracle Java-Plattform, Standard Edition 8 API-Spezifikation Dokumentation. All diese Informationen sorgen jedoch für eine umfangreiche Lektüre. Insbesondere für JList-Tipps können Sie sich auch die Tutorials auf diesen Websites ansehen:

Wenn Sie mit Java programmieren, möchten Sie sicherstellen, dass Sie alle Funktionen optimal nutzen. Sobald Sie mit den Konstruktoren und Methoden von JList vertraut sind, sind Sie auf dem besten Weg, dynamische Listen mit einer Vielzahl von Funktionen für Benutzer zu erstellen.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen