Introduzione a JList in Java
JList è un componente swing che visualizza un elenco di oggetti e consente all'utente di selezionare uno o più elementi. JList è come ListView in altri linguaggi di programmazione in cui ci consente di rappresentare un elenco di elementi.
Definizione di Application Program Interface (API)
JList è definito in java. pacchetto altalena.
JList è generico. Inoltre, eredita da java.swing.JComponent, che è una classe astratta che è la classe di base per tutti i componenti Swing tranne i contenitori di livello superiore.
- JList di classe pubblica
- estende JComponent
- implementa Scorrevole, accessibile
Inoltre, come puoi vedere, JList implementa javax.swing.Scrollable, un'interfaccia che fornisce un contenitore a scorrimento come JScrollPane e java.swing.Accessible, che è l'interfaccia principale per il pacchetto di accessibilità.
Costruttori di JList
- JList (): questo costruttore nella classe JList creerà un elenco con un modello di sola lettura, vuoto.
- Elenco JList (Array ()) : questo costruttore nella classe JList creerà un elenco che visualizzerà gli elementi dell'array specificato nel parametro.
- JList (modello di dati ListModel): questo costruttore nella classe JList creerà un elenco che visualizzerà gli elementi dal modello specificato, nullo.
- Elenco J (dati elenco vettoriale): questo costruttore nella classe JList creerà un elenco che visualizzerà gli elementi del vettore specificato all'interno del parametro.
Metodi comunemente usati di JList
- Void addListSelectionListener (ListSelectionListener listener): questo metodo viene utilizzato per aggiungere un listener all'elenco, che può essere utilizzato per ricevere una notifica ogni volta che viene apportata una modifica alla selezione nell'elenco.
- Int gets selectedIndex (): questo metodo viene utilizzato per restituire l'indice dell'elemento selezionato dell'elenco.
- Int get valore selezionato (): questo metodo viene utilizzato per restituire il valore dell'elemento selezionato nell'elenco.
- ListModel getModel (): questo metodo viene utilizzato per restituire il modello di dati che contiene gli elementi dell'elenco nel componente JList.
- Void setListData (Object () list data): questo metodo viene utilizzato per creare un modello di sola lettura dall'array di oggetti specificato nel parametro.
Esempio di JList semplice in azione
Nell'esempio seguente useremo una JList per controllare il colore del pannello. In primo luogo creeremo JList e riempiremo con i diversi colori, impostare l'elenco come JScrollPane per vedere tutti i colori dell'elenco e aggiungere un listener di eventi azione sull'elenco in base al quale impostiamo il colore del pannello di sfondo.
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);))
Produzione:
Aggiunta di dati a JList
Non aggiungiamo i dati direttamente alle JList. Invece, usiamo un modello separato. Tale modello manterrà il contenuto dell'elenco. Tuttavia, se si desidera eseguire il rendering di elementi da un array o un vettore, passeremo semplicemente l'array nel nostro costruttore JList, quindi JList costruirà automaticamente ListModel per noi. Tuttavia, la maggior parte delle volte si desidera utilizzare ListModel se si dispone di dati provenienti da raccolte. Inoltre, ListModel definisce diversi metodi che possiamo anche usare per manipolare i nostri dati.
Possiamo avviare ListModel nel modo seguente:
- DefaultListModel df = new DefaultListModel ();
- DefaultListModel è definito nel pacchetto javax.swing.
Esempio per utilizzare DefaultListModel
Qui nell'esempio seguente, creeremo un JFrame diviso in due metà in orizzontale. La sinistra conterrà l'elenco di alcuni articoli e la metà destra mostrerà il rispettivo prezzo degli articoli nell'elenco adiacente. Per fare ciò in primo luogo creeremo un JFrame, un JList e un DefaultListModel quindi riempiremo il modello con l'elenco degli articoli e i loro rispettivi prezzi, imposteremo l'elenco sul componente sinistro e i prezzi sul componente destro, impostare le dimensioni del telaio e infine inquadra la logica per elencare il prezzo corretto per un Articolo.
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;
)
)
)
Produzione:
Conclusione - JList in Java
La classe Jlist in Java è adatta per visualizzare i dati degli oggetti in un elenco e può essere utilizzata per attivare eventi sulla base della selezione di un valore particolare nell'elenco. Jlist può essere utilizzato per rappresentare i dati in modo molto ordinato nelle applicazioni Java.
Articoli consigliati
Questa è una guida alla JList in Java. Qui discutiamo l'introduzione, i costruttori di JList, i metodi comunemente usati di JList insieme ad esempi. Puoi anche consultare i nostri altri articoli suggeriti per saperne di più–
- JScrollPane in Java
- Dichiarazioni condizionali in JavaScript
- JDialog in Java
- JComboBox in Java
- JLabel in Java
- Flowlayout in Java