JList v Jave - Konštruktory a bežne používané metódy JList

Obsah:

Anonim

Úvod do JList v Jave

JList je komponent hojdania, ktorý zobrazuje zoznam objektov a umožňuje užívateľovi vybrať jednu alebo viac položiek. JList je ako ListViews v iných programovacích jazykoch, kde nám umožňuje reprezentovať zoznam položiek.

Definícia aplikačného programového rozhrania (API)

JList je definovaný v jave. hojdačka balíček.

JList je všeobecný. Ďalej dedí z java.swing.JComponent, čo je abstraktná trieda, ktorá je základnou triedou pre všetky komponenty Swing okrem kontajnerov najvyššej úrovne.

  • verejná trieda JList
  • rozširuje JComponent
  • implementuje posúvateľné, prístupné

Navyše, ako vidíte, JList implementuje javax.swing.Scrollable, rozhranie, ktoré poskytuje posúvací kontajner ako JScrollPane a java.swing.Accessible, čo je hlavné rozhranie pre balík prístupnosti.

Konštruktori JList

  1. JList (): Tento konštruktor v triede JList vytvorí zoznam s prázdnym modelom iba na čítanie.
  2. Údaje zoznamu JList (Array ()) : Tento konštruktor v triede JList vytvorí zoznam, ktorý zobrazí prvky z poľa špecifikovaného v parametri.
  3. JList (dátový model ListModel): Tento konštruktor v triede JList vytvorí zoznam, v ktorom sa zobrazia prvky zo zadaného, ​​nulového modelu.
  4. JList (údaje zoznamu vektorov): Tento konštruktor v triede JList vytvorí zoznam, ktorý zobrazí prvky z vektora špecifikovaného v parametri.

Bežne používané metódy JList

  1. Void addListSelectionListener (ListSelectionListener poslucháč): Táto metóda sa používa na pridanie poslucháča do zoznamu, ktorý možno použiť na upozornenie vždy, keď dôjde k akejkoľvek zmene vo výbere uskutočňovaného zoznamu.
  2. Int gets selectedIndex (): Táto metóda sa používa na vrátenie indexu vybranej položky zoznamu.
  3. Int get selected value (): Táto metóda sa používa na vrátenie hodnoty prvku vybratého v zozname.
  4. ListModel getModel (): Táto metóda sa používa na vrátenie dátového modelu, ktorý uchováva položky zoznamu v komponente JList.
  5. Void setListData (dáta zoznamu objektov ()): Táto metóda sa používa na vytvorenie modelu len na čítanie z daného poľa objektov v parametri.

Príklad jednoduchého JList v akcii

V nižšie uvedenom príklade použijeme JList na ovládanie farby panela. Najprv urobíme JList a vyplníme rôznymi farbami, nastavíme zoznam a JScrollPane, aby sme videli všetky farby zoznamu a pridali poslucháč akčných udalostí do zoznamu, na základe ktorého nastavíme farbu panelu pozadia.

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

Výkon:

Pridávanie údajov do JList

Nepripájame údaje priamo k JLists. Namiesto toho používame samostatný model. Tento model bude udržiavať obsah zoznamu. Ak však chcete vykresliť položky z poľa alebo vektora, potom iba prejdeme maticou v našom konštruktore JList, potom pre nás JList automaticky vytvorí ListModel. Väčšinu času však chcete používať ListModel, ak máte údaje pochádzajúce zo zbierok. ListModel navyše definuje niekoľko metód, ktoré môžeme použiť aj na manipuláciu s našimi údajmi.

ListModel môžeme iniciovať nasledujúcim spôsobom:

  • DefaultListModel df = new DefaultListModel ();
  • DefaultListModel je definovaný v balíku javax.swing.

Príklad použitia DefaultListModel

Tu v nižšie uvedenom príklade vytvoríme JFrame, ktorý sa horizontálne rozdelí na dve polovice. Vľavo bude obsahovať zoznam niektorých položiek a pravá polovica zobrazuje príslušnú cenu položiek v susednom zozname. Najprv vytvoríme JFrame, JList a DefaultListModel, potom vyplníme model zoznamom položiek a ich príslušnými cenami, nastavíme zoznam na ľavú zložku a ceny na pravú zložku, nastavíme veľkosť rámca a na poslednom snímke je logika, ktorá uvádza správnu cenu za položku.

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

Výkon:

Záver - JList v Jave

Trieda Jlist v Jave je vhodná na zobrazenie objektových údajov v zozname a môže sa použiť na aktiváciu udalostí na základe výberu konkrétnej hodnoty v zozname. Jlist môže byť použitý na reprezentáciu dát veľmi usporiadaným spôsobom v Java aplikáciách.

Odporúčané články

Toto je sprievodca po JList v Jave. Tu uvádzame úvod, konštruktory JList, bežne používané metódy JList, spolu s príkladmi. Viac informácií nájdete aj v ďalších navrhovaných článkoch -

  1. JScrollPane v Jave
  2. Podmienené vyhlásenia v JavaScripte
  3. JDialog v Jave
  4. JComboBox v Jave
  5. JLabel v Jave
  6. Flowlayout v Jave