JList Java - JListi konstruktorid ja levinumad meetodid

Lang L: none (table-of-contents):

Anonim

Sissejuhatus Java loendisse JList

JList on kiikkomponent, mis kuvab objektide loendi ja võimaldab kasutajal valida ühe või mitu üksust. JList on nagu ListViews teistes programmeerimiskeeltes, kus see võimaldab meil esindada üksuste loendit.

Rakendusprogrammiliidese (API) määratlus

JList on määratletud javas. kiigepakett.

JList on geneeriline. Lisaks pärib see saidilt java.swing.JComponent, mis on abstraktne klass, mis on kõigi Swingi komponentide, välja arvatud tipptasemel konteinerid, põhiklass.

  • avaliku klassi JList
  • laiendab JComponent
  • rakendab keritavat, juurdepääsetavat

Veelgi enam, nagu näete JListi rakendusi javax.swing.Scrolollable, on liides, mis pakub kerimismahuteid nagu JScrollPane ja java.swing.Accessible, mis on hõlbustuspaketi peamine liides.

JListi konstruktorid

  1. JList (): see JListi klassi konstruktor loob loendi ainult kirjutuskaitstud, tühja mudeliga.
  2. JList (massiivi () loendiandmed) : see JListi klassi konstruktor loob loendi, milles kuvatakse parameetris määratud massiivi elemendid.
  3. JList (ListModel andmemudel): see JListi klassi konstruktor loob loendi, kus kuvatakse määratud mudeli elemendid.
  4. JList (vektorloendi andmed): see JListi klassi konstruktor loob loendi, kus kuvatakse parameetris täpsustatud vektori elemendid.

JListi tavapäraselt kasutatavad meetodid

  1. Void addListSelectionListener (ListSelectionListener kuulaja): Seda meetodit kasutatakse kuulajate lisamiseks loendisse, mida saab kasutada selleks, et saada märku iga kord, kui loendis tehakse muudatusi.
  2. Int saab valitudIndexi (): Seda meetodit kasutatakse loendi valitud üksuse indeksi tagastamiseks.
  3. Sisesta valitud väärtus (): Seda meetodit kasutatakse loendis valitud elemendi väärtuse tagastamiseks.
  4. ListModel getModel (): Seda meetodit kasutatakse andmemudeli tagastamiseks, mis sisaldab JListi komponendi loendi üksusi.
  5. Void setListData (objektide () loendi andmed): Seda meetodit kasutatakse parameetris antud objektide massiivi kirjutuskaitstud mudeli loomiseks.

Näide tegevuses toimuvast lihtsast JList

Allpool toodud näites kasutame paneeli värvi juhtimiseks JListi. Esiteks teeme JListi ja täidame erinevate värvidega, määrame loendiks JScrollPane, et näha kõiki loendi värve, ja lisame loendisse toimingusündmuse kuulaja, mille põhjal me taustpaneeli värvi määrasime.

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äljund:

Andmete lisamine JListi

Me ei lisa andmeid otse JListidele. Selle asemel kasutame eraldi mudelit. See mudel säilitab loetelu sisu. Kui soovite aga renderdada elemente massiivist või vektorist, siis edastame massiivi lihtsalt meie JListi konstruktoris, siis ehitab JList automaatselt ListModeli meie jaoks. Kui soovite, et kogudest pärinevad andmed, soovite enamuse ajast kasutada ListModelit. Lisaks määratleb ListModel mitmeid meetodeid, mida saame kasutada ka oma andmetega manipuleerimiseks.

Saame algatada lisamudeli järgmisel viisil:

  • DefaultListModel df = uus DefaultListModel ();
  • DefaultListModel on määratletud paketis javax.swing.

Näide DefaultListModeli kasutamiseks

Allpool toodud näites loome JFrame'i, mis jaguneb horisontaalselt kaheks pooleks. Vasakul on mõne kaubaartikli nimekiri ja paremal pool kuvatakse külgnevas loendis olevate toodete vastav hind. Esiteks loome selle jaoks JFrame, JList ja DefaultListModel, seejärel täidame mudeli üksuste ja nende vastavate hindadega, määrame loendi vasakule komponendile ja hinnad paremale komponendile, määrame raami suuruse ja lõpuks loogika, et loetleda välja toote õige hind.

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äljund:

Järeldus - JList Java

Jlist Class Java sobib objektide andmete kuvamiseks loendis ja seda saab kasutada sündmuste aktiveerimiseks loendis oleva konkreetse väärtuse valimise alusel. Jlist saab kasutada andmete kuvamiseks Java-rakendustes väga korrapäraselt.

Soovitatavad artiklid

See on Java JListi juhend. Siin käsitleme JListi sissejuhatust, JListi konstruktoreid, JListi tavapäraselt kasutatavaid meetodeid koos näidetega. Lisateavet leiate ka meie muudest soovitatud artiklitest -

  1. JScrollPane Java
  2. Tingimuslikud avaldused JavaScriptis
  3. JDialog Java
  4. JComboBox Java-s
  5. JLabel Java
  6. Väljavool Java-s