Johdanto JList Java -sovellukseen
JList on kääntyvä komponentti, joka näyttää luettelon esineistä ja antaa käyttäjän valita yhden tai useamman kohteen. JList on kuin ListViews muilla ohjelmointikielillä, jossa se antaa meille mahdollisuuden edustaa luetteloa kohteista.
Sovellusohjelmarajapinnan (API) määritelmä
JList on määritelty javassa. swing-paketti.
JList on yleinen. Lisäksi se perii java.swing.JComponent, joka on abstrakti luokka, joka on perusluokka kaikille Swing-komponenteille paitsi ylimmän tason kontit.
- julkisen luokan JList
- laajentaa JComponentia
- toteuttaa vieritettävissä, saavutettavissa
Lisäksi, kuten voit nähdä JList toteuttaa javax.swing.Scollable, käyttöliittymä, joka tarjoaa vierityskontin, kuten JScrollPane, ja java.swing.Accessible, joka on pääsypaketin päärajapinta.
JListin rakentajat
- JList (): Tämä JList-luokan rakentaja luo luettelon vain luettavissa olevasta tyhjästä mallista.
- JList (taulukon () luettelotiedot) : Tämä JList-luokan rakentaja luo luettelon, joka näyttää parametrissa määritetyn taulukon elementit.
- JList (ListModel-tietomalli): Tämä JList-luokan rakentaja luo luettelon, joka näyttää määritetyn, nollattoman mallin elementit.
- JList (vektoriluettelotiedot): Tämä JList-luokan rakentaja luo luettelon, joka näyttää elementit parametrissa määritellystä vektorista.
Yleisesti käytetyt menetelmät JList
- Void addListSelectionListener (ListSelectionListener listener): Tätä menetelmää käytetään kuuntelijan lisäämiseen luetteloon, josta voidaan ilmoittaa aina, kun valittavissa olevaan luetteloon tehdään muutoksia.
- Int saa valitunIndex (): Tätä menetelmää käytetään palauttamaan luettelon valitun kohteen hakemisto.
- Int saada valittu arvo (): Tätä menetelmää käytetään palauttamaan luettelossa valitun elementin arvo.
- ListModel getModel (): Tätä menetelmää käytetään palauttamaan datamalli, joka pitää luettelon kohteita JList-komponentissa.
- Void setListData (Object () list data): Tätä menetelmää käytetään vain luku -mallin luomiseen parametrissa olevasta objektien joukosta.
Esimerkki yksinkertaisesta JList toiminnassa
Seuraavassa esimerkissä käytämme JList-luetteloa paneelin värin säätämiseen. Ensin tehdään JList ja täytetään eri väreillä, asetetaan luettelolle JScrollPane nähdäksesi kaikki luettelon värit ja lisätään toimintatapahtuman kuuntelija luetteloon, jonka perusteella asetamme taustapaneelin värin.
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);))
lähtö:
Tietojen lisääminen JListiin
Emme liitä tietoja suoraan JList-luetteloihin. Sen sijaan käytämme erillistä mallia. Tämä malli ylläpitää luettelon sisältöä. Jos kuitenkin haluat tuottaa kohteita taulukosta tai vektorista, lähetämme vain taulukon JList-konstruktorissamme, jolloin JList rakentaa automaattisesti luettelomallin meille. Kuitenkin suurimman osan ajasta haluat käyttää ListModelia, jos sinulla on tietoja kokoelmista. Lisäksi ListModel määrittelee useita menetelmiä, joita voimme käyttää myös manipuloidaksemme tietoja.
Voimme käynnistää Listamallin seuraavalla tavalla:
- DefaultListModel df = uusi DefaultListModel ();
- DefaultListModel määritetään javax.swing-paketissa.
Esimerkki DefaultListModel -sovelluksen käytöstä
Tässä alla olevassa esimerkissä luomme JFrame-kehyksen, joka on jaettu kahteen puolikkaaseen vaakasuoraan. Vasemmalla on luettelo eräistä tavaroista ja oikealla puoliskolla näkyy viereisessä luettelossa olevien tuotteiden vastaava hinta. Tämän tekemiseksi ensin luodaan JFrame, JList ja DefaultListModel, sitten täytämme mallin esineluettelolla ja niiden vastaavilla hinnoilla, asetamme luettelon vasemmalle komponentille ja hinnat oikealle komponentille, asetamme kehyksen koon ja viimeinkin kehystä logiikka luetella tuotteen oikea hinta.
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;
)
)
)
lähtö:
Johtopäätös - JList Java
Java-luokan Jlist-luokka soveltuu objektitietojen näyttämiseen luettelossa ja sitä voidaan käyttää tapahtumien aktivointiin luettelon tietyn arvon valinnan perusteella. Jlist-ohjelmaa voidaan käyttää edustamaan tietoja erittäin järjestetyllä tavalla Java-sovelluksissa.
Suositellut artikkelit
Tämä on Java-JList-opas. Tässä keskustellaan johdannosta, JListin rakentajista, JListin yleisesti käytetyistä menetelmistä sekä esimerkkejä. Voit myös käydä läpi muiden ehdotettujen artikkeleidemme saadaksesi lisätietoja -
- JScrollPane Java
- Ehdollinen lausunto JavaScript-muodossa
- JDialog Java
- JComboBox Java
- JLabel Java
- Flowlayout Java-sovelluksessa