Introducere în JList în Java
JList este o componentă swing care afișează o listă de obiecte și permite utilizatorului să selecteze unul sau mai multe elemente. JList este ca ListViews în alte limbaje de programare, unde ne permite să reprezentăm o listă de elemente.
Definiția aplicației Program Interface (API)
JList este definit în java. pachet swing.
JList este generic. Mai mult, moștenește de la java.swing.JComponent, care este o clasă abstractă care este clasa de bază pentru toate componentele Swing, cu excepția containerelor de nivel superior.
- clasă publică JList
- extinde JComponent
- implementează defilare, accesibilă
Mai mult, după cum vedeți JList implementează javax.swing.Scrollable, o interfață care oferă un container derulant precum JScrollPane și java.swing.Accessible, care este interfața principală pentru pachetul de accesibilitate.
Constructorii JList
- JList (): acest constructor din clasa JList va crea o listă cu un model numai de citire, gol.
- Date listă JList (Array ()) : acest constructor din clasa JList va crea o listă care va afișa elementele din tabloul specificat în parametru.
- JList (model de date ListModel): acest constructor din clasa JList va crea o listă care va afișa elementele din modelul specificat, fără nul.
- JList (Date de listă vectorială): acest constructor din clasa JList va crea o listă care va afișa elementele din vectorul specificat în parametru.
Metodele frecvent utilizate de JList
- Void addListSelectionListener (ListSelectionListener listener): Această metodă este utilizată pentru a adăuga un ascultător în listă, care poate fi folosit pentru a fi notificat ori de câte ori există vreo modificare a selecției din listă care se face.
- Int devine selectat Indice (): Această metodă este utilizată pentru a returna indexul articolului selectat din listă.
- Obțineți valoare selectată (): această metodă este utilizată pentru a returna valoarea elementului selectat în listă.
- ListModel getModel (): această metodă este utilizată pentru a returna modelul de date care conține elementele listei în componenta JList.
- Void setListData (obiect () listă date): Această metodă este utilizată pentru a crea un model de citire numai din tabloul dat de parametri.
Exemplu de JList simplu în acțiune
În exemplul de mai jos vom folosi un JList pentru a controla culoarea panoului. În primul rând, vom face JList și vom completa cele cu diferite culori, vom seta lista JScrollPane pentru a vedea toate culorile listei și vom adăuga un ascultător de evenimente pe listă pe baza căruia setăm culoarea panoului de fundal.
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);))
ieşire:
Adăugarea de date la JList
Nu adăugăm date direct la JLists. În schimb, folosim un model separat. Acest model va menține conținutul listei. Cu toate acestea, dacă doriți să redați elemente dintr-un tablou sau vector, atunci vom trece doar tabloul în constructorul JList, atunci JList va construi automat ListModel pentru noi. Cu toate acestea, de cele mai multe ori doriți să utilizați ListModel dacă aveți date care provin din colecții. Mai mult, ListModel definește mai multe metode pe care le putem folosi și pentru a ne manipula datele.
Putem iniția ListModel în felul următor:
- DefaultListModel df = new DefaultListModel ();
- DefaultListModel este definit în pachetul javax.swing.
Exemplu de utilizare DefaultListModel
Aici, în exemplul de mai jos, vom crea o JFrame care este împărțită în două jumătăți pe orizontală. Stânga va conține lista unor articole, iar jumătatea dreaptă va arăta prețul respectiv al articolelor din lista alăturată. Pentru a face acest lucru în primul rând, vom crea un JFrame, un JList și un DefaultListModel, apoi vom completa modelul cu lista de articole și prețurile respective, vom seta lista pe componenta din stânga și prețurile pe componenta dreaptă, vom seta dimensiunea cadrului și în sfârșit, logica pentru a enumera prețul corect pentru un articol.
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;
)
)
)
ieşire:
Concluzie - JList în Java
Clasa Jlist în Java este potrivită pentru afișarea datelor obiectului într-o listă și poate fi utilizată pentru a activa evenimentele pe baza selecției unei anumite valori din listă. Jlist poate fi utilizat pentru a reprezenta datele într-o manieră foarte ordonată în Aplicații Java.
Articole recomandate
Acesta este un ghid pentru JList în Java. Aici vom discuta Introducere, Constructori de JList, Metode de utilizare frecventă a JList împreună cu exemple. Puteți parcurge și alte articole sugerate pentru a afla mai multe -
- JScrollPane în Java
- Declarații condiționale în JavaScript
- JDialog în Java
- JComboBox în Java
- JLabel în Java
- Flowlayout în Java