Bevezetés a Java listába
A JList egy swing összetevő, amely megjeleníti az objektumok listáját, és lehetővé teszi a felhasználó számára, hogy egy vagy több elemet kiválassza. A JList olyan, mint a ListViews más programozási nyelveken, ahol lehetővé teszi számunkra, hogy az elemek listáját ábrázoljuk.
Az alkalmazásprogram interfész (API) meghatározása
A JList a java-ban van meghatározva. hintacsomag.
A JList általános. Ezenkívül a java.swing.JComponent-ről örököl, amely egy elvont osztály, amely minden Swing-alkotóelem alaposztálya, kivéve a felső szintű tárolókat.
- nyilvános osztály JList
- kiterjeszti a JComponent
- gördíthető, elérhető
Sőt, amint láthatja a JList a javax.swing.Scrollable eszközt, egy olyan felületet, amely olyan görgető tárolót biztosít, mint a JScrollPane, és a java.swing.Accessible, amely a hozzáférési csomag fő felülete.
A JList kivitelezői
- JList (): Ez a JList osztály kivitelező létrehoz egy listát, csak olvasható, üres modellvel.
- JList (tömb () listaadatok) : Ez a JList osztályba tartozó konstruktor létrehoz egy listát, amely megjeleníti a paraméterben megadott tömb elemeit.
- JList (ListModel adatmodell): Ez a JList osztályba tartozó konstruktor létrehoz egy listát, amely megjeleníti a megadott, null nélküli modell elemeit.
- JList (Vektorlista adatok): Ez a JList osztályban szereplő konstruktor létrehoz egy listát, amely megjeleníti a paraméterben megadott vektor elemeit.
A JList általánosan használt módszerei
- Érvénytelen addListSelectionListener (ListSelectionListener hallgató): Ezt a módszert használják hallgató hozzáadására a listához, amely értesítést kaphat, ha bármilyen változás bekövetkezik a kiválasztott listán.
- Int megkapja a selectIndex () értéket: Ez a módszer a lista kiválasztott elemének visszaadására szolgál.
- A kiválasztott érték beolvasása (): Ez a módszer a listában kiválasztott elem értékének visszatérítésére szolgál.
- ListModel getModel (): Ez a módszer arra az adatmodellre vonatkozik, amely a JList összetevőben a lista elemeit tartalmazza.
- Void setListData (Objektum () listaadatok): Ezt a módszert csak olvasható modell létrehozására használják a paraméterben szereplő objektumok adott tömbjéből.
Példa az egyszerű JList működésre
Az alábbi példában JList-et fogunk használni a panel színének szabályozására. Először elkészítjük a JList listát, és kitölti a különféle színeket, beállítja a listát JScrollPane-ként, hogy a lista összes színe megjelenjen, és hozzáadunk egy akcióesemény-figyelőt a listához, amely alapján a háttérpanel színét beállítottuk.
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);))
Kimenet:
Adatok hozzáadása a JListhez
Az adatokat nem közvetlenül a JListákhoz csatoljuk. Ehelyett külön modellt használunk. Ez a modell fenntartja a lista tartalmát. Ha azonban tömbből vagy vektorból szeretne elemeket előállítani, akkor csak átadjuk a tömböt a JList konstruktorunkban, akkor a JList automatikusan felépíti a ListModel számunkra. Azonban a legtöbb esetben a ListModel használatát akarja használni, ha a gyűjteményekből származó adatokkal rendelkezik. Sőt, a ListModel számos módszert határoz meg, amelyeket adataink kezelésére is felhasználhatunk.
A ListModel a következő módon indítható el:
- DefaultListModel df = új DefaultListModel ();
- A DefaultListModel a javax.swing csomagban van meghatározva.
Példa a DefaultListModel használatára
Az alábbiakban bemutatott példában JFrame-t hozunk létre, amely vízszintesen két felére oszlik. A bal oldalon az egyes tételek listája, a jobb oldalon pedig a szomszédos listában szereplő tételek ára látható. Ehhez először létrehozunk egy JFrame-t, JList-et és DefaultListModel-t, majd kitölti a modellt az elemek listájával és az azokhoz kapcsolódó árakkal, beállítja a listát bal oldali elemre és az árakat a jobb oldali elemre, beállítja a keret méretét és végre a logikát, hogy felsorolja az elem megfelelő árát.
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;
)
)
)
Kimenet:
Következtetés - JList Java
A Jlist Class a Java-ban alkalmas az objektumadatok listában való megjelenítésére, és felhasználható események aktiválására a listában szereplő adott érték kiválasztása alapján. A Jlist felhasználható az adatok rendszerszerű ábrázolására a Java alkalmazásokban.
Ajánlott cikkek
Ez egy útmutató a JList Java-hoz. Itt a JList bevezetése, a JList kivitelezői, a JList általánosan használt módszerek, valamint példákkal tárgyaljuk. A további javasolt cikkeken keresztül további információkat is megtudhat -
- JScrollPane Java-ban
- Feltételes kijelentések a JavaScript-ben
- JDialog Java
- JComboBox Java
- JLabel Java
- Flowlayout Java