betacode

Руководство Java SWT List

  1. SWT List
  2. Пример с SWT List

1. SWT List

SWT List является компонентом интерфейса, он отображает список элементов (List-item), которые являются string, и позволяет пользователям выбрать один или несколько элементов.
Примечание: SWT List является стандартным элементом интерфейса в приложении. Но SWT List имеет несколько недостатков:
SWT List содержит только элементы (List Item), вида String.
List-Item не может отображать символы (icon)
Для исправления недостатков выше можно использовать SWT Table чтобы заменить SWT List
Стили могут быть применены для SWT List
  • SWT.BORDER
  • SWT.MULTI: Позволяет выбрать один или несколько элементов (List-item)
  • SWT.SINGLE: Только позволяет выбрать максимум один элемент
  • SWT.V_SCROLL: Показать вертикальную полоску скроллинга
  • SWT.H_SCROLL: Показать горизонтальную полоску скроллинга

2. Пример с 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();
   }

}