JList in Java - Konstruktoren und häufig verwendete Methoden von JList

Inhaltsverzeichnis:

Anonim

Einführung in JList in Java

JList ist eine Swing-Komponente, die eine Liste von Objekten anzeigt und dem Benutzer die Auswahl eines oder mehrerer Elemente ermöglicht. JList ist wie ListViews in anderen Programmiersprachen, in denen wir eine Liste von Elementen darstellen können.

Definition der Anwendungsprogrammschnittstelle (API)

JList ist in Java definiert. Schaukel-Paket.

JList ist generisch. Darüber hinaus erbt es von java.swing.JComponent, einer abstrakten Klasse, die die Basisklasse für alle Swing-Komponenten mit Ausnahme von Containern der obersten Ebene ist.

  • public class JList
  • erweitert JComponent
  • implementiert Scrollable, Accessible

Wie Sie sehen, implementiert JList außerdem javax.swing.Scrollable, eine Schnittstelle, die einen Bildlaufcontainer wie JScrollPane und java.swing.Accessible bereitstellt, die die Hauptschnittstelle für das Accessibility-Paket ist.

Konstruktoren von JList

  1. JList (): Dieser Konstruktor in der JList-Klasse erstellt eine Liste mit einem schreibgeschützten, leeren Modell.
  2. JList (Array () -Listendaten) : Dieser Konstruktor in der JList-Klasse erstellt eine Liste, in der die Elemente des im Parameter angegebenen Arrays angezeigt werden.
  3. JList (ListModel-Datenmodell): Dieser Konstruktor in der JList-Klasse erstellt eine Liste, in der die Elemente aus dem angegebenen Modell ohne Nullen angezeigt werden.
  4. JList (Vektorlistendaten): Dieser Konstruktor in der JList-Klasse erstellt eine Liste, in der die Elemente des im Parameter angegebenen Vektors angezeigt werden.

Häufig verwendete Methoden von JList

  1. Void addListSelectionListener (ListSelectionListener Listener): Mit dieser Methode wird der Liste ein Listener hinzugefügt, der benachrichtigt werden kann, wenn Änderungen an der Auswahl in der Liste vorgenommen werden.
  2. Int gets selectedIndex (): Diese Methode wird verwendet, um den Index des ausgewählten Elements der Liste zurückzugeben.
  3. Int get selected value (): Mit dieser Methode wird der Wert des in der Liste ausgewählten Elements zurückgegeben.
  4. ListModel getModel (): Mit dieser Methode wird das Datenmodell zurückgegeben, das die Elemente der Liste in der JList-Komponente enthält.
  5. Void setListData (Object () - Listendaten): Mit dieser Methode wird ein schreibgeschütztes Modell aus dem angegebenen Array von Objekten im Parameter erstellt.

Beispiel für eine einfache JList in Aktion

Im folgenden Beispiel verwenden wir eine JList, um die Farbe des Bedienfelds zu steuern. Zuerst erstellen wir eine JList und füllen die mit den verschiedenen Farben aus, legen die Liste als JScrollPane fest, um alle Farben der Liste anzuzeigen, und fügen der Liste einen Aktionsereignis-Listener hinzu, auf dessen Grundlage wir die Farbe des Hintergrundfensters festlegen.

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class JListExample extends JFrame(
private JList list;
private static String() colorNames = ("blue", "green", "yellow", "orange", "red", "black", "grey", "white");
private static Color() colors = (Color.BLUE, Color.GREEN, Color.YELLOW, Color.ORANGE, Color.RED, Color.BLACK, Color.GRAY, Color.WHITE);
public JListExample() (
super("JList Demo Example");
setLayout(new FlowLayout());
list = new JList(colorNames);
list.setVisibleRowCount(5);//number of elements to visible as row in list
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
//choose the selection mode in list
add(new JScrollPane(list));
//adding event listener on JList
list.addListSelectionListener(
new ListSelectionListener() (
public void valueChanged(ListSelectionEvent e) (
getContentPane().setBackground(colors(list.getSelectedIndex()));)
));
)public static void main(String() args) (JListExample jl = new JListExample();jl.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jl.setSize(300, 300);jl.setVisible(true);))

Ausgabe:

Daten zu JList hinzufügen

Wir hängen keine Daten direkt an JLists an. Stattdessen verwenden wir ein separates Modell. Dieses Modell behält den Inhalt der Liste bei. Wenn Sie jedoch Elemente aus einem Array oder Vektor rendern möchten, übergeben wir das Array einfach in unserem JList-Konstruktor. Die JList erstellt dann automatisch ListModel für uns. In den meisten Fällen möchten Sie ListModel jedoch verwenden, wenn Sie Daten aus Sammlungen haben. Darüber hinaus definiert ListModel verschiedene Methoden, mit denen wir auch unsere Daten manipulieren können.

Wir können das ListModel folgendermaßen initiieren:

  • DefaultListModel df = new DefaultListModel ();
  • DefaultListModel ist im Paket javax.swing definiert.

Beispiel für die Verwendung von DefaultListModel

Im folgenden Beispiel wird ein JFrame erstellt, der horizontal in zwei Hälften geteilt wird. Die linke Seite enthält die Liste einiger Artikel und die rechte Hälfte zeigt den jeweiligen Preis der Artikel in der nebenstehenden Liste. Dazu erstellen wir zunächst einen JFrame, eine JList und ein DefaultListModel, füllen dann das Modell mit der Liste der Artikel und ihren jeweiligen Preisen, setzen die Liste auf die linke Komponente und die Preise auf die rechte Komponente, setzen die Größe des Frames und Als letztes die Logik einrahmen, um den richtigen Preis für einen Gegenstand aufzulisten.

import javax.swing.*;
import java.math.BigDecimal;
public class JListExample (
JFrame frame = new JFrame("Storage");
JList list = new JList();
DefaultListModel model = new DefaultListModel();
JLabel label = new JLabel();
JPanel panel = new JPanel();
JSplitPane splitPane = new JSplitPane();
public JListExample() (
list.setModel(model);
model.addElement(new Product("Item1", new BigDecimal("49.00")));
model.addElement(new Product("Item2", new BigDecimal("150")));
model.addElement(new Product("Item3", new BigDecimal("54.5")));
model.addElement(new Product("Item4", new BigDecimal("120.00")));
list.getSelectionModel().addListSelectionListener(e -> (
Product p = list.getSelectedValue();
label.setText(p.getName() + " price is = " + p.getPrice().toPlainString());
));
splitPane.setLeftComponent(new JScrollPane(list));
panel.add(label);
splitPane.setRightComponent(panel);
splitPane.setResizeWeight(0.5); //used to set the way it splits the left and right component
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.add(splitPane);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
frame.setSize(500, 300);
)
public static void main(String() args) (
SwingUtilities.invokeLater(JListExample::new);
)
private class Product (
String name;
BigDecimal price;
public Product(String name, BigDecimal price) (
this.name = name;
this.price = price;
)
public String getName() (
return name;
)
public void setName(String name) (
this.name = name;
)
public BigDecimal getPrice() (
return price;
)
public void setPrice(BigDecimal price) (
this.price = price;
)
@Override
public String toString() (
return name;
)
)
)

Ausgabe:

Fazit - JList in Java

Die Jlist-Klasse in Java eignet sich zum Anzeigen von Objektdaten in einer Liste und kann zum Aktivieren von Ereignissen auf der Grundlage der Auswahl eines bestimmten Werts in der Liste verwendet werden. Mit Jlist können Daten in Java-Anwendungen sehr geordnet dargestellt werden.

Empfohlene Artikel

Dies ist eine Anleitung zur JList in Java. Hier diskutieren wir die Einführung, Konstruktoren von JList, häufig verwendete Methoden von JList zusammen mit Beispielen. Sie können auch unsere anderen Artikelvorschläge durchgehen, um mehr zu erfahren.

  1. JScrollPane in Java
  2. Bedingte Anweisungen in JavaScript
  3. JDialog in Java
  4. JComboBox in Java
  5. JLabel in Java
  6. Flowlayout in Java