codestory

Die Anleitung zu Java SWT List

  1. SWT List
  2. Das Beispiel mit SWT List

1. SWT List

SWT List ist eine Schnittstelle, es bezeichnet die Liste der Elemente (List-item) als String und genehmigt dem Benutzer, ein oder viele Elemente zu wäheln
Notiz: SWT List ist eine gewöhnliche Interface in einer Applikation. Aber SWT List hat einige folgende Beschränkungen
SWT List enthaltet nur die Element (List Item) mit der String-Style.
Die List-Item können die Icon nicht anzeigen
Um die oben gemeinten Beschränkungen zu überwinden, können Sie SWT Table statt SWT List.benutzen
Die Style können für SWT List:angewendet werden
  • SWT.BORDER
  • SWT.MULTI: ein oder viele List Item wählen können
  • SWT.SINGLE: maximal nur ein Item wählen.
  • SWT.V_SCROLL: vertikale Bildlaufleiste zeigen
  • SWT.H_SCROLL: horizontale Bildlaufleiste zeigen

2. Das Beispiel mit 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();
   }

}