Je suis au courant de En effet, le contenu de la liste est trop énorme pour être affiché à l'aide d'une liste simple. J'ai également besoin de sélectionner plusieurs éléments, sinon j'aurais eu du contenu avec Toute suggestion? P> jlist code> et
jcombobox code>. J'ai besoin de la fonctionnalité de liste déroulante de la boîte déroulante avec plusieurs fonctionnalités de sélection que
jlist code> fournit. P>
jcommobox code>. P>
4 Réponses :
Lorsque vous utilisez Multi-Select, il vaut mieux utiliser une liste qu'une liste déroulante. En tant que métaphores de l'interface graphique, les gens s'attendent à ce qu'une boîte déroulante soit sélectionnée, alors que les listes peuvent être soit. P>
Le contenu de la liste est trop énorme pour être affiché à l'aide d'une liste simple p> blockQuote>
Placez le
jlist code> dans un
jscrollpane code>. Vous pouvez appeler SetVisiblerWCount (int) sur le
jlist code> Pour spécifier le nombre de lignes à une heure doit être affichée. P>
Vous pouvez créer un rendu de cellule personnalisé pour le ComboBox et ajouter des cases à cocher à ces composants. Vous pouvez donc les vérifier et les décocher. Vous devez faire quelque chose comme ceci:
public class MyComboBoxRenderer implements ListCellRenderer { private String[] items; private boolean[] selected; public MyComboBoxRenderer(String[] items){ this.items = items; this.selected = new boolean[items.lenght]; } public Component getListCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int index) { // Create here a JLabel with the text // Create here a JCheckBox // Add them to a layoutmanager return this; } public void setSelected(int i, boolean flag) { this.selected[i] = flag; } }
Cette classe doit prolonger certains sous-types de composant code> afin de rendre le type de retour de
getlistCellrendererComponent () code> correspondant, si vous voulez
renvoyer ceci; code>. Si vous souhaitez retourner la marque que vous avez créée, c'est OK, l'original (donc je ne l'obtiens pas vraiment). Et où est-ce que ce
SEselected () code> vient? Mieux pour poster tous les codes.
Si vos données ont un caractère hiérarchique, envisagez le composant CLOP CODE> CLOP CODE>, décrit dans Annonce de la nouvelle table d'arborescence balançoire em> et dans ce Réponse . Voici le version de développement actuelle em> de l'API. p>
Pour atteindre la fonctionnalité décrite, j'ai finalement décidé de "abuser" le (Enfin, j'ai défini une certaine logique de bit sur les éléments, puis peut me limiter à ne manipuler qu'un seul type d'événement) p> jmenubar code> et ajouter à lui plusieurs
jcheckboxmenuitems code>. L'interface graphique correspond parfaitement parfaitement au but (au moins pour moi), il s'agit simplement de la manipulation de la citoyenne qui risque de devenir un peu ennuyeux. P>