Comment transférer les éléments d'un JList à d'autres JList en Java?
-
22-09-2019 - |
Question
J'ai deux JList sur une interface graphique de swing. Maintenant, je veux que lorsqu'un utilisateur clique sur un bouton (par exemple TransferButton) les éléments sélectionnés d'un JList est ajouté de la première à la deuxième JList JList et supprimer les éléments sélectionnés de la première JList.
La solution
Le modèle ne connaît pas la sélection.
Le JList propose plusieurs méthodes pour obtenir l'élément sélectionné ou index sélectionné. Utilisez ces méthodes pour obtenir les éléments et les ajouter au modèle de l'autre liste.
Autres conseils
Vous avez deux JList
s, vous avez également leurs ListModel
s respectifs. Selon la façon dont vous les vous pouvez simplement implémenté supprimer les éléments d'un modèle et les ajouter à l'autre. A noter, cependant, que l'interface ListModel
ne se soucie pas plus que l'accès à l'élément par défaut, vous avez sans doute de mettre en œuvre des méthodes et add
remove
là par vous-même.
DefaultListModel leftModel = new DefaultListModel();
leftModel.addElement("Element 1");
leftModel.addElement("Element 2");
leftModel.addElement("Element 3");
leftModel.addElement("Element 5");
leftModel.addElement("Element 6");
leftModel.addElement("Element 7");
JList leftList = new JList(leftModel);
DefaultListModel rightModel = new DefaultListModel();
JList rightList = new JList(rightModel);
Nous allons vous imaginer avoir deux composantes de JList comme décrit dans le code ci-dessus (à gauche et à droite). Vous devez écrire le code suivant pour transférer des valeurs sélectionnées à partir de la gauche vers la droite JList.
for(Object selectedValue:leftList.getSelectedValuesList()){
rightModel.addElement(selectedValue);
leftModel.removeElement(selectedValue);
}