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.

Était-ce utile?

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 JLists, vous avez également leurs ListModels 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);
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top