Uvod v JList na Javi

JList je nihajna komponenta, ki prikazuje seznam predmetov in uporabniku omogoča izbiro enega ali več elementov. JList je kot ListViews v drugih programskih jezikih, kjer nam omogoča, da predstavljamo seznam elementov.

Opredelitev vmesnika aplikacijskega programa (API)

JList je opredeljen v javi. paket zamaha.

JList je generičen. Poleg tega podeduje od java.swing.JComponent, ki je abstraktni razred, ki je osnovni razred za vse komponente Swinga, razen vsebnikov najvišjega nivoja.

  • javni razred JList
  • razširja JComponent
  • izvaja Drsno, dostopno

Poleg tega, kot lahko vidite, JList izvaja javax.swing.Scrollable, vmesnik, ki omogoča pomikanje vsebnika, kot sta JScrollPane, in java.swing.Accessible, ki je glavni vmesnik za dostopni paket.

Konstruktorji JLista

  1. JList (): Ta konstruktor v razredu JList bo ustvaril seznam z modelom, ki je samo za branje, prazen.
  2. Podatki seznama JList (Array ()) : Ta konstruktor v razredu JList bo ustvaril seznam, ki bo prikazal elemente iz matrike, določene v parametru.
  3. JList (Podatkovni model ListModel): Ta konstruktor v razredu JList bo ustvaril seznam, ki bo prikazal elemente iz podanega, ničelnega modela.
  4. JList (podatki vektorskih seznamov): Ta konstruktor v razredu JList bo ustvaril seznam, ki bo prikazal elemente iz vektorja, ki je določen v parametru.

Pogosto uporabljene metode JList

  1. Razveljavi addListSelectionListener (poslušalec ListSelectionListener): Ta metoda se uporablja za dodajanje poslušalca na seznam, ki ga je mogoče uporabiti za obveščanje, kadar pride do kakršnih koli sprememb v izbiri seznama.
  2. Int dobi izbranIndex (): Ta metoda se uporablja za vrnitev indeksa izbranega elementa seznama.
  3. Int izbrana vrednost (): Ta metoda se uporablja za vrnitev vrednosti elementa, izbranega na seznamu.
  4. ListModel getModel (): Ta metoda se uporablja za vrnitev podatkovnega modela, ki vsebuje elemente seznama v komponenti JList.
  5. Neveljavni setListData (podatki seznama Object ()): Ta metoda se uporablja za ustvarjanje modela samo za branje iz podanega niza predmetov v parametru.

Primer enostavnih JList v akciji

V spodnjem primeru bomo za nadzor barve plošče uporabili JList. Najprej bomo naredili JList in napolnili z različnimi barvami, seznam postavili JScrollPane, da bi videli vse barve seznama in na seznam dodali poslušalca akcijskega dogodka, na podlagi katerega smo nastavili barvo plošče ozadja.

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

Izhod:

Dodajanje podatkov v JList

Podatkov ne dodajamo neposredno na JL sezname. Namesto tega uporabljamo ločen model. Ta model bo ohranil vsebino seznama. Če pa želite elemente upodobiti iz matrike ali vektorja, bomo matriko samo prenesli v naš konstruktor JList, potem bo JList samodejno sestavil ListModel za nas. Vendar večino časa želite uporabljati ListModel, če imate podatke iz zbirk. Poleg tega ListModel definira več načinov, ki jih lahko uporabimo tudi za manipulacijo z našimi podatki.

ListModel lahko sprožimo na naslednji način:

  • DefaultListModel df = nov DefaultListModel ();
  • DefaultListModel je določen v paketu javax.swing.

Primer uporabe DefaultListModel

Tu v spodnjem primeru bomo ustvarili JFrame, ki ga vodoravno razdelimo na dve polovici. Na levi strani bo seznam nekaterih artiklov, desna polovica pa bo prikazala ustrezno ceno artiklov na sosednjem seznamu. Najprej bomo ustvarili JFrame, JList in DefaultListModel, nato pa model napolnili s seznamom elementov in ustreznimi cenami, seznam postavili na levo komponento in cene na desno komponento, nastavili velikost okvira in nazadnje je logika, da se navede pravilna cena izdelka.

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

Izhod:

Zaključek - JList na Javi

Razred Jlist v Javi je primeren za prikaz podatkov predmeta na seznamu in ga je mogoče uporabiti za aktiviranje dogodkov na podlagi izbire določene vrednosti na seznamu. Jlist lahko v Java aplikacijah zelo urejeno predstavljate podatke.

Priporočeni članki

To je vodnik za JList na Javi. Tukaj razpravljamo o Uvodu, Konstruktorji JLista, Običajno uporabljenih metodah JLista skupaj s primeri. Obiščite lahko tudi druge naše predlagane članke, če želite izvedeti več -

  1. JScrollPane v Javi
  2. Pogojne izjave v JavaScript
  3. JDialog na Javi
  4. JComboBox na Javi
  5. JLabel v Javi
  6. Pretok v Javi