JList na Javi - Konstruktori i uobičajene metode JLista

Sadržaj:

Anonim

Uvod u JList na Javi

JList je ljuljačka komponenta koja prikazuje popis objekata i omogućava korisniku da odabere jednu ili više stavki. JList je nalik ListViewu u drugim programskim jezicima gdje nam omogućuje predstavljanje popisa stavki.

Definicija sučelja aplikacijskog programa (API)

JList je definiran u javi. ljuljački paket.

JList je generički. Štoviše, nasljeđuje od java.swing.JComponent, što je apstraktna klasa koja je osnovna klasa za sve Swingove komponente, osim spremnika najviše razine.

  • javna klasa JList
  • produžuje JComponent
  • provodi Pomicanje, Pristupačnost

Štoviše, kao što vidite, JList implementira javax.swing.Scrollable, sučelje koje pruža pomični spremnik poput JScrollPane i java.swing.Accessible, što je glavno sučelje za paket pristupačnosti.

Konstruktori JLista

  1. JList (): Ovaj Konstruktor u klasi JList stvorit će Popis s modelom samo za čitanje, praznim.
  2. Podaci s popisa JList (Array ()) : Ovaj Konstruktor u klasi JList stvorit će popis koji će prikazati elemente iz niza navedenog u parametru.
  3. JList (ListModel model podataka): Ovaj Konstruktor u klasi JList stvorit će popis koji će prikazivati ​​elemente iz navedenog, ne-null modela.
  4. JList (Podaci vektorskog popisa): Ovaj Konstruktor u klasi JList stvorit će popis koji će prikazati elemente iz vektora navedenog u parametru.

Uobičajeno korištene metode JLista

  1. Poništi addListSelectionListener (listeSelectionListener listener): Ova metoda se koristi za dodavanje slušatelja na popis, koji se može obavijestiti kad god se izvrši promjena izbora u popisu.
  2. Int dobije selectedIndex (): Ova metoda koristi se za vraćanje indeksa odabrane stavke popisa.
  3. Int get selected value (): Ova metoda se koristi za vraćanje vrijednosti elementa odabranog na popisu.
  4. ListModel getModel (): Ova se metoda koristi za vraćanje modela podataka koji sadrži stavke popisa u JList Component.
  5. Void setListData (podaci popisa Object ()): Ova se metoda koristi za kreiranje modela samo za čitanje iz datog niza objekata u parametru.

Primjer jednostavnih JLista na djelu

U primjeru u nastavku koristit ćemo JList za kontrolu boje ploče. Prvo ćemo napraviti JList i popuniti s različitim bojama, postaviti popis JScrollPane kako bismo vidjeli sve boje popisa i na listu dodati slušatelja akcijskog događaja na temelju kojeg postavljamo boju pozadinske ploče.

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

Izlaz:

Dodavanje podataka u JList

Ne dodavamo podatke izravno na JListe. Umjesto toga, koristimo zaseban model. Taj će model održavati sadržaj popisa. Međutim, ako želite prikazati stavke iz niza ili vektora, tada ćemo samo proslijediti niz u našem konstruktoru JList, a zatim će JList automatski sastaviti ListModel za nas. Međutim, većinu vremena želite koristiti ListModel ako imate podatke koji dolaze iz zbirki. Pored toga, ListModel definira nekoliko metoda pomoću kojih također možemo manipulirati našim podacima.

ListModel možemo pokrenuti na sljedeći način:

  • DefaultListModel df = novi DefaultListModel ();
  • DefaultListModel definiran je u paketu javax.swing.

Primjer za upotrebu DefaultListModel

Ovdje u donjem primjeru stvorit ćemo JFrame koji je vodoravno podijeljen na dvije polovice. Lijevo će sadržavati popis nekih stavki, a desna polovica prikazuje odgovarajuću cijenu predmeta na susjednom popisu. Za to ćemo prvo stvoriti JFrame, JList i DefaultListModel, zatim ćemo model ispuniti popisom stavki i njihovih odgovarajućih cijena, postaviti popis na lijevu komponentu i cijene na desnu komponentu, postaviti veličinu okvira i naposljetku, logika je navesti ispravnu cijenu predmeta.

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

Izlaz:

Zaključak - JList na Javi

Jlist klasa u Javi pogodna je za prikazivanje podataka objekta na popisu i može se koristiti za aktiviranje događaja na temelju odabira određene vrijednosti na popisu. Jlist se može upotrebljavati za predstavljanje podataka na vrlo uređen način u Java aplikacijama.

Preporučeni članci

Ovo je vodič za JList na Javi. Ovdje raspravljamo o Uvodu, konstruktorima JLista, uobičajenim metodama JLista zajedno s primjerima. Možete i proći kroz naše druge predložene članke da biste saznali više -

  1. JScrollPane u Javi
  2. Uvjetne izjave u JavaScript-u
  3. JDialog na Javi
  4. JComboBox na Javi
  5. JLabel u Javi
  6. Protok u Javi