devstory

Le Tutoriel de Java SWT List

Site d'apprentissage des langues gratuit:
Suivez-nous sur notre fanpage pour recevoir des notifications chaque fois qu'il y a de nouveaux articles. Facebook

1- SWT List

SWT List est une partie de composant de l'interface utilisateur qui affiche la liste des éléments (List-item) tels que des string et permet aux utilisateurs de choisir un ou plusieurs éléments.
Remarque: SWT List est un composant commun de l'interface utilisateur dans une application SWT. Pourtant SWT List a certains inconvénients comme ci-dessous:
  • SWT List comprend seulement des éléments (List Item) ayant le type String.
  • Des List-Item ne peuvent pas afficher des icônes (icon)
Afin de franchir ces inconvénients mentionnés ci-dessus, vous pouvez utiliser SWT Table au lieu d'utiliser SWT List.
Les styles peuvent être appliqués dans SWT List:
  1. SWT.BORDER
  2. SWT.MULTI:  Vous permet de sélectionner un ou plusieurs éléments (List-item).
  3. SWT.SINGLE: Vous permet de sélectionner un élément seulement.
  4. SWT.V_SCROLL: Affiche la barre de défilement verticale.
  5. SWT.H_SCROLL: Affiche la barre de défilement horizontale.

2- Exemple de SWT List

ListDemo.java

package org.o7planning.swt.list;

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.RowData;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.List;
import org.eclipse.swt.widgets.Shell;

public class ListDemo {

   public static void main(String[] args) {
       Display display = new Display();
       Shell shell = new Shell(display);
       shell.setText("SWT List (o7planning.org)");
       shell.setSize(450, 200);

       RowLayout layout = new RowLayout(SWT.VERTICAL);
       layout.spacing = 10;
       layout.marginHeight = 10;
       layout.marginWidth = 10;

       shell.setLayout(layout);

       // Create a List
       // (Allows selecte multiple lines and display vertical scroll bar.).
       final List list = new List(shell, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL);
       list.setLayoutData(new RowData(240, 100));

       list.add("Apple");
       list.add("Apricot");
       list.add("Banana");
       list.add("Carrot");
       list.add("Cherry");
       list.add("Courgette");
       list.add("Endive");
       list.add("Grape");

       Label label = new Label(shell, SWT.NONE);
       label.setLayoutData(new RowData(240, SWT.DEFAULT));

       list.addSelectionListener(new SelectionAdapter() {

           @Override
           public void widgetSelected(SelectionEvent event) {
               int[] selections = list.getSelectionIndices();
               String outText = "";
               for (int i = 0; i < selections.length; i++) {
                   outText += selections[i] + " ";
               }
               label.setText("You selected: " + outText);
           }

       });

       shell.open();
       while (!shell.isDisposed()) {
           if (!display.readAndDispatch())
               display.sleep();
       }
       display.dispose();
   }

}