devstory

Le Tutoriel de Java SWT List

  1. SWT List
  2. Exemple de SWT List

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:
  • SWT.BORDER
  • SWT.MULTI: Vous permet de sélectionner un ou plusieurs éléments (List-item).
  • SWT.SINGLE: Vous permet de sélectionner un élément seulement.
  • SWT.V_SCROLL: Affiche la barre de défilement verticale.
  • 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();
   }

}