Introduction à JList en Java
JList est un composant swing qui affiche une liste d'objets et permet à l'utilisateur de sélectionner un ou plusieurs éléments. JList est comme ListViews dans d'autres langages de programmation où il nous permet de représenter une liste d'éléments.
Définition de l'interface de programme d'application (API)
JList est défini dans la java. paquet de balançoire.
JList est générique. De plus, elle hérite de java.swing.JComponent, qui est une classe abstraite qui est la classe de base pour tous les composants Swing à l'exception des conteneurs de niveau supérieur.
- public class JList
- étend JComponent
- implémente Scrollable, Accessible
De plus, comme vous pouvez le voir, JList implémente javax.swing.Scrollable, une interface qui fournit un conteneur de défilement comme JScrollPane et java.swing.Accessible, qui est l'interface principale du package d'accessibilité.
Constructeurs de JList
- JList (): ce constructeur de la classe JList créera une liste avec un modèle vide en lecture seule.
- JList (Array () list data) : Ce constructeur de la classe JList créera une liste qui affichera les éléments du tableau spécifié dans le paramètre.
- JList (modèle de données ListModel): ce constructeur de la classe JList créera une liste qui affichera les éléments du modèle spécifié, non nul.
- JList (données de liste vectorielle): ce constructeur de la classe JList créera une liste qui affichera les éléments du vecteur spécifié dans le paramètre.
Méthodes couramment utilisées de JList
- Void addListSelectionListener (écouteur ListSelectionListener): cette méthode est utilisée pour ajouter un écouteur à la liste, qui peut être utilisée pour être averti chaque fois que la sélection dans la liste est modifiée.
- Int obtient selectedIndex (): cette méthode est utilisée pour renvoyer l'index de l'élément sélectionné de la liste.
- Int get selected value (): Cette méthode est utilisée pour renvoyer la valeur de l'élément sélectionné dans la liste.
- ListModel getModel (): cette méthode est utilisée pour renvoyer le modèle de données qui contient les éléments de la liste dans le composant JList.
- Void setListData (Object () list data): Cette méthode est utilisée pour créer un modèle en lecture seule à partir du tableau d'objets donné dans le paramètre.
Exemple de JList simple en action
Dans l'exemple ci-dessous, nous utiliserons une JList pour contrôler la couleur du panneau. Tout d'abord, nous allons créer JList et remplir le avec les différentes couleurs, définir la liste un JScrollPane afin de voir toutes les couleurs de la liste et ajouter un écouteur d'événements d'action sur la liste sur la base de laquelle nous avons défini la couleur du panneau d'arrière-plan.
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);))
Production:
Ajout de données à JList
Nous n'ajoutons pas de données directement à JLists. Au lieu de cela, nous utilisons un modèle distinct. Ce modèle conservera le contenu de la liste. Cependant, si vous souhaitez rendre des éléments à partir d'un tableau ou d'un vecteur, nous passerons simplement le tableau dans notre constructeur JList, puis le JList construira automatiquement ListModel pour nous. Cependant, la plupart du temps, vous souhaitez utiliser ListModel si vous avez des données provenant de collections. De plus, ListModel définit plusieurs méthodes que nous pouvons également utiliser pour manipuler nos données.
Nous pouvons lancer le ListModel de la manière suivante:
- DefaultListModel df = new DefaultListModel ();
- DefaultListModel est défini dans le package javax.swing.
Exemple d'utilisation de DefaultListModel
Ici, dans l'exemple ci-dessous, nous allons créer un JFrame divisé en deux moitiés horizontalement. La gauche contiendra la liste de certains articles et la moitié droite affichera le prix respectif des articles dans la liste adjacente. Pour ce faire, nous allons d'abord créer un JFrame, un JList et un DefaultListModel puis nous remplirons le modèle avec la liste des articles et leurs prix respectifs, définissons la liste sur le composant gauche et les prix sur le composant droit, définissons la taille du cadre et enfin encadrer la logique pour lister le prix correct d'un article.
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;
)
)
)
Production:
Conclusion - JList en Java
La classe Jlist en Java convient pour afficher les données d'objet dans une liste et peut être utilisée pour activer des événements sur la base de la sélection d'une valeur particulière dans la liste. Jlist peut être utilisé pour représenter les données de manière très ordonnée dans les applications Java.
Articles recommandés
Ceci est un guide de la JList en Java. Ici, nous discutons de l'introduction, des constructeurs de JList, des méthodes couramment utilisées de JList ainsi que des exemples. Vous pouvez également consulter nos autres articles suggérés pour en savoir plus–
- JScrollPane en Java
- Instructions conditionnelles en JavaScript
- JDialog en Java
- JComboBox en Java
- JLabel en Java
- Flowlayout en Java