J'ai un jcombobox dans mon application.
et je veux qu'il à l'appui de la sélection multiple (comme il le font dans une jlist).
est-il un exemple de code?
Listes ne sont pas très attrayants, mais ils sont plus appropriés que d'
les zones de liste déroulante lorsque le nombre d'éléments est grand (plus de 20) ou lorsque
sélection de plusieurs éléments peut être valide.
Mise à jour:
J'ai examiné cette réponse, car en fait c'est "possible" de le faire à l'aide d'un ListCellRenderer, l'ajout d'une case à cocher pour chaque élément. Veuillez considérer cette réponse pour mettre en œuvre cette "solution".
Cependant, je ne pense pas que c'est une bonne idée pour les raisons suivantes:
il y a un contrôle, comme une JList qui permet la sélection multiple;
un JComboBox de contrôle est conçu seulement pour simple élément de sélection;
il ne fait pas de sens pour moi de toujours utiliser un JComboBox de contrôle et de permettre une sélection multiple.
la poisse , merci de toute façon Je sais que c'est une déception. Vous êtes les bienvenus 🙂 Non, c'est possible, mais utiliser Convertisseur Oui, mais c'est pas une bonne idée pour moi. J'ai mis à jour la réponse.
Ce n'est pas tout à fait impossible, mais il y a beaucoup de travail à faire pour obtenir le travail fait. Vous aurez besoin pour créer vos propres classes de prolonger ou mettre en œuvre l'ensemble de ces:
ListCellRenderer (de sorte que vous pouvez marquer les éléments sélectionnés lorsque le pop-up est de montrer et d'indiquer (au moins) qu'il y a plusieurs choix quand il ne l'est pas).
JComboBox (évidemment)
BasicComboBoxUI (c'est effectivement là où la plupart des travaux est)
BasicListUI (j'ai eu au moins)
ComboBoxModel
Et vous aurez besoin pour développer votre propre classe qui implémente ItemListener, MouseListener, PopupMenuListener, MouseMotionListener, PropertyChangeListener, KeyListener, ListSelectionListener.
Astuce: vous aurez besoin de remplacer un lot de createXXXListener() les méthodes dans les classes de l'INTERFACE utilisateur dans le but de contourner les nombreux endroits où les sélections multiples sont rejetés.
[Et il n'est toujours pas permettre une modifiable multi-sélection de la zone de liste déroulante.]
Je pense qu'il n'est pas possible, sauf si vous utilisez une JList, comme vous l'avez dit.
La JComboBox API rapports:
Et un JComboBox tutoriel:
Mise à jour:
J'ai examiné cette réponse, car en fait c'est "possible" de le faire à l'aide d'un ListCellRenderer, l'ajout d'une case à cocher pour chaque élément. Veuillez considérer cette réponse pour mettre en œuvre cette "solution".
Cependant, je ne pense pas que c'est une bonne idée pour les raisons suivantes:
Je sais que c'est une déception. Vous êtes les bienvenus 🙂
Non, c'est possible, mais utiliser Convertisseur
Oui, mais c'est pas une bonne idée pour moi. J'ai mis à jour la réponse.
OriginalL'auteur Alberto Solano
Ce n'est pas tout à fait impossible, mais il y a beaucoup de travail à faire pour obtenir le travail fait. Vous aurez besoin pour créer vos propres classes de prolonger ou mettre en œuvre l'ensemble de ces:
Et vous aurez besoin pour développer votre propre classe qui implémente ItemListener, MouseListener, PopupMenuListener, MouseMotionListener, PropertyChangeListener, KeyListener, ListSelectionListener.
Astuce: vous aurez besoin de remplacer un lot de createXXXListener() les méthodes dans les classes de l'INTERFACE utilisateur dans le but de contourner les nombreux endroits où les sélections multiples sont rejetés.
[Et il n'est toujours pas permettre une modifiable multi-sélection de la zone de liste déroulante.]
OriginalL'auteur Rob Blaskett