Introductie tot JList in Java
JList is een swingcomponent die een lijst met objecten weergeeft en waarmee de gebruiker een of meer items kan selecteren. JList is zoals ListViews in andere programmeertalen waar het ons in staat stelt een lijst met items weer te geven.
Definitie van Application Program Interface (API)
JList is gedefinieerd in de Java. schommelpakket.
JList is generiek. Bovendien neemt het over van java.swing.JComponent, een abstracte klasse die de basisklasse is voor alle Swing-componenten behalve containers op het hoogste niveau.
- openbare klasse JList
- breidt JComponent uit
- implementeert Scrollable, toegankelijk
Bovendien, zoals u kunt zien, implementeert JList javax.swing.Scrollable, een interface die een scrollcontainer zoals JScrollPane en java.swing.Accessible biedt, de hoofdinterface voor het toegankelijkheidspakket.
Constructors of JList
- JList (): deze constructor in de klasse JList maakt een lijst met een alleen-lezen, leeg model.
- JList (Array () lijstgegevens) : deze constructor in de klasse JList maakt een lijst met de elementen uit de array die binnen de parameter is opgegeven.
- JList (ListModel-datamodel): deze constructor in de JList-klasse maakt een lijst met de elementen van het opgegeven, niet-nulmodel.
- JList (gegevens van de vectorlijst ): deze constructor in de klasse JList maakt een lijst met de elementen van de vector die in de parameter is opgegeven.
Veelgebruikte methoden van JList
- Void addListSelectionListener (ListSelectionListener listener): deze methode wordt gebruikt om een luisteraar aan de lijst toe te voegen, die kan worden gebruikt om een melding te ontvangen wanneer er een wijziging in de selectie in de lijst wordt aangebracht.
- Int wordt geselecteerdIndex (): deze methode wordt gebruikt om de index van het geselecteerde item in de lijst te retourneren.
- Int get selected value (): deze methode wordt gebruikt om de waarde van het geselecteerde element in de lijst te retourneren.
- ListModel getModel (): deze methode wordt gebruikt om het gegevensmodel te retourneren dat de items van de lijst in de JList-component bevat.
- Void setListData (Object () list data): deze methode wordt gebruikt om een alleen-lezen model te maken van de gegeven reeks objecten in de parameter.
Voorbeeld van Simple JList in actie
In het onderstaande voorbeeld gebruiken we een JList om de kleur van het paneel te regelen. Eerst zullen we JList maken en de met de verschillende kleuren invullen, de lijst een JScrollPane instellen om alle kleuren van de lijst te zien en een actie-gebeurtenislistener aan de lijst toevoegen op basis waarvan we de kleur van het achtergrondpaneel instellen.
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);))
Output:
Gegevens toevoegen aan JList
We voegen gegevens niet rechtstreeks toe aan JLists. In plaats daarvan gebruiken we een afzonderlijk model. Dat model behoudt de inhoud van de lijst. Als u echter items uit een array of vector wilt renderen, zullen we de array gewoon doorgeven in onze JList-constructor, dan zal de JList automatisch ListModel voor ons bouwen. Het grootste deel van de tijd wilt u ListModel echter gebruiken als u gegevens uit verzamelingen hebt. Bovendien definieert ListModel verschillende methoden die we ook kunnen gebruiken om onze gegevens te manipuleren.
We kunnen het ListModel op de volgende manier starten:
- DefaultListModel df = new DefaultListModel ();
- DefaultListModel wordt gedefinieerd in het pakket javax.swing.
Voorbeeld om DefaultListModel te gebruiken
Hier in het onderstaande voorbeeld maken we een JFrame dat horizontaal in twee helften wordt opgesplitst. Links bevat de lijst van enkele items en de rechterhelft geeft de respectieve prijs van de items in de aangrenzende lijst weer. Om dit te doen zullen we eerst een JFrame, een JList en een DefaultListModel maken, daarna zullen we het model vullen met de lijst met artikelen en hun respectieve prijzen, de lijst instellen op de linkercomponent en de prijzen op de rechtercomponent, de grootte van het frame instellen en eindelijk de logica om de juiste prijs voor een artikel te vermelden.
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;
)
)
)
Output:
Conclusie - JList in Java
Jlist Class in Java is geschikt voor het weergeven van objectgegevens in een lijst en kan worden gebruikt om gebeurtenissen te activeren op basis van de selectie van een bepaalde waarde in de lijst. Jlist kan worden gebruikt om gegevens op een zeer geordende manier weer te geven in Java-toepassingen.
Aanbevolen artikelen
Dit is een handleiding voor de JList in Java. Hier bespreken we de introductie, constructeurs van JList, veelgebruikte methoden van JList samen met voorbeelden. U kunt ook onze andere voorgestelde artikelen doornemen voor meer informatie–
- JScrollPane in Java
- Voorwaardelijke verklaringen in JavaScript
- JDialog in Java
- JComboBox in Java
- JLabel in Java
- Stroomschema in Java