JList i Java - Konstruktörer och vanligtvis använda metoder för JList

Innehållsförteckning:

Anonim

Introduktion till JList i Java

JList är en svingkomponent som visar en lista med objekt och gör att användaren kan välja ett eller flera objekt. JList är som ListViews på andra programmeringsspråk där det tillåter oss att representera en lista med objekt.

Definition av applikationsprogramgränssnitt (API)

JList definieras i java. svängpaket.

JList är generisk. Dessutom ärver det från java.swing.JComponent, som är en abstrakt klass som är basklassen för alla Swing-komponenter utom behållare på toppnivå.

  • allmän klass JList
  • utökar JComponent
  • implementerar Scrollable, Accessible

Dessutom, som du kan se JList implementerar javax.swing.Scrollable, ett gränssnitt som tillhandahåller en rullande behållare som JScrollPane och java.swing.Accessible, som är huvudgränssnittet för tillgänglighetspaketet.

Konstruktörer av JList

  1. JList (): Denna konstruktör i klassen JList skapar en lista med en skrivskyddad, tom modell.
  2. JList (Array () listdata) : Denna konstruktör i klassen JList skapar en lista som visar elementen från den array som anges i parametern.
  3. JList (ListModel-datamodell): Denna konstruktör i klassen JList skapar en lista som visar elementen från den angivna, no-null-modellen.
  4. JList (Data list data): Denna konstruktör i klassen JList skapar en lista som visar elementen från vektorn som anges i parametern.

Vanliga metoder för JList

  1. Void addListSelectionListener (ListSelectionListener lyssnaren): Denna metod används för att lägga till en lyssnare till listan, som kan användas för att bli meddelad när det görs någon ändring i valet i listan som görs.
  2. Int blir valdIndex (): Den här metoden används för att returnera indexet för det valda objektet i listan.
  3. Int get vald värde (): Den här metoden används för att returnera värdet på det element som valts i listan.
  4. ListModel getModel (): Den här metoden används för att returnera datamodellen som innehåller artiklarna i listan i JList-komponenten.
  5. Void setListData (Objekt () listdata): Den här metoden används för att skapa en skrivskyddad modell från den angivna arrayen av objekt i parametern.

Exempel på Simple JList in Action

I exemplet nedan använder vi en JList för att kontrollera färg på panelen. Först kommer vi att göra JList och fylla i med olika färger, ställa in listan i en JScrollPane för att se alla färger i listan och lägga till en actionhändelse lyssnar på listan baserad på vilken vi ställer in färgen på bakgrundspanelen.

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);))

Produktion:

Lägga till data till JList

Vi lägger inte till data direkt till JLists. Istället använder vi en separat modell. Den modellen kommer att behålla listans innehåll. Men om du vill återge objekt från en matris eller vektor, kommer vi bara att skicka matrisen i vår JList-konstruktör då kommer JList automatiskt att bygga ListModel för oss. Men de flesta av tiden du vill använda ListModel om du har data från samlingar. ListModel definierar dessutom flera metoder som vi också kan använda för att manipulera våra data.

Vi kan initiera ListModel på följande sätt:

  • DefaultListModel df = new DefaultListModel ();
  • StandardListModel definieras i paketet javax.swing.

Exempel för att använda StandardListModel

Här i exemplet nedan skapar vi en JFrame som delas upp i två halvor horisontellt. Den vänstra innehåller listan över vissa artiklar och den högra halvan visar respektive pris för artiklarna i den angränsande listan. För det första kommer vi att skapa en JFrame, en JList och en StandardListModel, sedan kommer vi att fylla modellen med listan med objekt och deras respektive priser, ställa listan till vänster komponent och priserna till höger komponent, ställa in ramens storlek och sista ramen logiken för att lista rätt pris för en artikel.

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;
)
)
)

Produktion:

Slutsats - JList i Java

Jlist Class i Java är lämplig för att visa objektdata i en lista och kan användas för att aktivera händelser på grundval av val av särskilt värde i listan. Jlist kan användas för att representera data på ett mycket ordnat sätt i Java-applikationer.

Rekommenderade artiklar

Detta är en guide till JList i Java. Här diskuterar vi introduktionen, konstruktörer av JList, vanligt använda metoder för JList tillsammans med exempel. Du kan också gå igenom våra andra artiklar som föreslås för att lära dig mer–

  1. JScrollPane i Java
  2. Villkorliga uttalanden i JavaScript
  3. JDialog i Java
  4. JComboBox i Java
  5. JLabel i Java
  6. Flowlayout i Java