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 unjscrollpane code>. Vous pouvez appeler SetVisiblerWCount (int) sur lejlist 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>