Les boîtes de liste sont générées par le composant swing jlist, qui occupe toujours un nombre fixe de lignes à l'écran. Si vous souhaitez obtenir l'élément sélectionné dans la zone de liste, appelez simplement GetSelectedValuesList (), qui peut produire un tableau de chaînes avec le nom de l'élément sélectionné. Le composant JList autorise plusieurs sélections; Si vous maintenez la touche CTRL, vous pouvez sélectionner tous les éléments cliqués; Si vous sélectionnez un élément, maintenez la touche Maj et cliquez sur un autre élément, alors tous les éléments entre les deux éléments sont sélectionnés; Pour en supprimer un de l'élément sélectionné, maintenez la touche Ctrl et cliquez sur l'élément.
Après avoir initialisé la zone de liste, puis ajouter et modifier le contenu à la zone de liste. Il est divisé en opérations statiques et en opérations dynamiques.
1. Fonctionnement statique
Le fonctionnement statique signifie l'ajout de tous les éléments à JList en même temps. Après l'ajout, il ne peut pas être modifié ou supprimé. C'est-à-dire que la zone de liste ne peut pas fonctionner lors de l'exécution du programme.
Par exemple
Test de package; Importer Javax.swing. *; Importer java.awt. *; Importer static net.mindview.util.swingconsole. *; public class listTest1 étend jframe {private string [] str = {"lundi", "mardi", "mercredi", "jeudi", "vendredi"). JList (str); setLayout (new FlowLayout ()); add (list);} public static void main (String [] args) {run (new listTest1 (), 200,100);}}Comme dans l'exemple ci-dessus, ajoutez simplement tous les éléments lors de l'initialisation de JList.
Résultat de l'exécution: la zone de liste ne peut pas être utilisée.
2. Fonctionnement dynamique
En regardant la méthode JList, vous pouvez constater que JList n'est pas responsable du fonctionnement dynamique de la zone de liste. Tous les détails de l'opération dynamique peuvent être terminés dans le "modèle de liste", à savoir le DefaultListModel. Ajoutez simplement le modèle de liste au jlist.
DefaultListModel listModel = new defaultListModel (); listModel.addelement (élément1); // ajouter élément listModel.clear (); // effacer tous les éléments ListModel.Remove (int index); // effacer les éléments à la position spécifiée
Par exemple
Test de package; Import Java.awt. *; Importer java.awt.event. *; Importer static net.mindview.util.swingconsole. *; import javax.swing.border.border; importer javax.swing.event.listSelectionsevent; import javax.swing.event.listSelectionLaitener; {"Lundi", "mardi", "mercredi", "jeudi", "vendredi", "staturday", "dimanche"}; privé jbutton bouton1 = new JButton ("Add Item"), Button2 = new JBUTTON ("élément clair"); private jTextArea text = new JTextArea (str.length, 20); PrivateList listModel listmodel = newtlistModel (); JList (listModel); // Ajouter le modèle de liste à JList, le modèle de liste est responsable de la réalisation des opérations dynamiques, et JList est responsable de la création de listes et de nombreuses autres tâches (telles que la sélection multiple). private int count = 0; private booléan drapeau = false; public listTest () {text.setEdIT (false); // il est unique e) {if (count <str.length) {listModel.Addelement (str [count ++]);} else {Button1.SetEnabled (Flag); Flag = true;}}}); Button2.AdDactionListener (new ActionListener () {public void Actionperped (ActionEvent e) {if (count <st.Length) {comte = 0; listModel.clear (); // cliquez sur l'élément de liste text.seTText (null);} else {count = 0; listModel.clear (); text.setText (null); Button1.setEnabled (Flag); // Button de démarrage}}}); List.AddlistSelectionListener (New ListSelectionListener () {@ SuppressWarting ValueChanged (listSelectionEvent e) {if (e.getValueIsAdjusting ()) Retour; // si l'événement est détecté pour changer, il renvoie true et l'instruction suivante ne sera pas exécutée; pour (objet élément: list.getSelectedValuesList ()) {text.append (item + "/ n"); // convertir la méthode de l'objet List en objet} // lister getSelectedValuesList () pour générer une table Color.Red); // Add Border List.SetBorder (Border); // Set Border Text.SetBorder (Border); Add (Button1); Add (Button2); Add (New JscrollPane (Text)); Add (List);} public static void Main (String [] args) {run (new listTest (), 250,375);}}Résultats de l'exécution:
Dans le programme ci-dessus, la méthode getValueIsAdjusting () de la liste d'événements ListSelectionEvent prise en charge par JList et la méthode GetSelectedValuesList () de JList sont utilisées dans le processus de traitement de JLIST. Faites attention à l'utilisation de ces deux méthodes.
(1) booléen javax.swing.event.listSelectionevent.getValueIsAdjusting ()
Renvoie si cet événement est l'un des multiples événements différents qui changent toujours, et renvoie vrai si cet événement est l'un des multiples événements différents qui changent toujours.
Par exemple, pour qu'un événement qui sélectionne soit mis à jour en réponse au glisser-filet d'un utilisateur, cette propriété est définie sur true au début du glisser; et est défini sur False à la fin de la traînée. Pendant la traînée, l'auditeur reçoit un événement dans lequel la propriété Value Adjusting est définie sur true. À la fin de la traînée, lorsque le changement se termine, l'auditeur reçoit un événement avec une valeur définie sur False.
Si vous supprimez l'instruction de détection de mise à jour du programme d'enregistrement de l'objet JList:
if (e.getValueIsAdjusting ()) retour;
La sortie est:
On peut voir qu'il n'y a pas de détection de mise à jour, et après avoir sélectionné l'élément de la zone de liste, il y a une sortie répétée.
(2) Liste javax.swing.jlist.getSelectedValuesList ()
L'objet JList appelle la méthode GetSelectedValuesList () pour générer un tableau de chaînes avec le nom d'élément sélectionné.
3. Jlist Scrollbar
JList ne fournit pas de prise en charge directe pour le défilement, nous enroulons simplement JList dans jscrollpane, il aidera automatiquement à tous les détails.
Résumé: Si vous souhaitez ajouter des éléments à JList, vous pouvez effectuer des opérations statiques qui ajoutent tous les éléments lorsque JList est initialisé, ou vous pouvez utiliser le "List Model" DefaultListModel pour traiter les opérations dynamiques de tous les détails de modification de la liste.
Remarque: La détection de mise à jour peut être utilisée lors de la sélection des éléments JList pour assurer la stabilité du programme.
Ce qui précède est la zone de liste de l'interface utilisateur graphique Java qui vous est présentée par l'éditeur. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!