Java/SWT JFace Eclipse/List
Содержание
Demonstrates Lists
<source lang="java">
//Send questions, comments, bug reports, etc. to the authors: //Rob Warner (rwarner@interspatial.ru) //Robert Harris (rbrt_harris@yahoo.ru) import org.eclipse.swt.SWT; import org.eclipse.swt.layout.*; import org.eclipse.swt.widgets.*; /**
* This class demonstrates Lists */
public class ListExample {
// Strings to use as list items private static final String[] ITEMS = { "Alpha", "Bravo", "Charlie", "Delta", "Echo", "Foxtrot", "Golf", "Hotel", "India", "Juliet", "Kilo", "Lima", "Mike", "November", "Oscar", "Papa", "Quebec", "Romeo", "Sierra", "Tango", "Uniform", "Victor", "Whiskey", "X-Ray", "Yankee", "Zulu" }; public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display); shell.setLayout(new FillLayout()); // Create a single-selection list List single = new List(shell, SWT.BORDER | SWT.SINGLE | SWT.V_SCROLL); // Add the items, one by one for (int i = 0, n = ITEMS.length; i < n; i++) { single.add(ITEMS[i]); } // Select the 5th items single.select(4); // Create a multiple-selection list List multi = new List(shell, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL); // Add the items all at once multi.setItems(ITEMS); // Select the 10th through 12th items multi.select(9, 11); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } display.dispose(); }
}
</source>
List Demo
<source lang="java">
import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.layout.FormAttachment; import org.eclipse.swt.layout.FormData; import org.eclipse.swt.layout.FormLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.List; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Shell;
public class SWTListDemo {
public static void main (String [] args) { Display display = new Display (); final Shell shell = new Shell (display); Label label = new Label (shell, SWT.WRAP); label.setText ("This is a long text string that will wrap when the dialog is resized."); List list = new List (shell, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL); list.setItems (new String [] {"Item 1", "Item2"}); Button button1 = new Button (shell, SWT.PUSH); button1.setText ("Ok"); Button button2 = new Button (shell, SWT.PUSH); button2.setText ("Cancel"); final int insetX = 4, insetY = 4; FormLayout formLayout = new FormLayout (); formLayout.marginWidth = insetX; formLayout.marginHeight = insetY; shell.setLayout (formLayout); Point size = label.ruputeSize (SWT.DEFAULT, SWT.DEFAULT); final FormData labelData = new FormData (size.x, SWT.DEFAULT); labelData.left = new FormAttachment (0, 0); labelData.right = new FormAttachment (100, 0); label.setLayoutData (labelData); shell.addListener (SWT.Resize, new Listener () { public void handleEvent (Event e) { Rectangle rect = shell.getClientArea (); labelData.width = rect.width - insetX * 2; shell.layout (); } }); FormData button2Data = new FormData (); button2Data.right = new FormAttachment (100, -insetX); button2Data.bottom = new FormAttachment (100, 0); button2.setLayoutData (button2Data); FormData button1Data = new FormData (); button1Data.right = new FormAttachment (button2, -insetX); button1Data.bottom = new FormAttachment (100, 0); button1.setLayoutData (button1Data); FormData listData = new FormData (); listData.left = new FormAttachment (0, 0); listData.right = new FormAttachment (100, 0); listData.top = new FormAttachment (label, insetY); listData.bottom = new FormAttachment (button2, -insetY); list.setLayoutData (listData); shell.pack (); shell.open (); while (!shell.isDisposed ()) { if (!display.readAndDispatch ()) display.sleep (); } display.dispose (); }
}
</source>
List Example
<source lang="java">
import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.*; public class SWTListExample {
Display d; Shell s; SWTListExample() { d = new Display(); s = new Shell(d); s.setSize(250,250); s.setText("A List Example"); final List l = new List(s, SWT.SINGLE | SWT.BORDER); l.setBounds(50, 50, 75, 75); l.add("Item One"); l.add("Item Two"); l.add("Item Three"); l.add("Item Four"); l.add("Item Five"); s.open(); while(!s.isDisposed()){ if(!d.readAndDispatch()) d.sleep(); } d.dispose(); } public static void main(String[] argv){ new SWTListExample(); }
}
</source>
List Example 2
<source lang="java">
import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.List; import org.eclipse.swt.widgets.Shell; public class ListExample2 {
Display d; Shell s; ListExample2() { d = new Display(); s = new Shell(d); s.setSize(250, 250); s.setText("A List Example"); String items[] = { "Item One", "Item Two", "Item Three", "Item Four", "Item Five" }; final List l = new List(s, SWT.SINGLE | SWT.BORDER); l.setBounds(50, 50, 75, 75); l.setItems(items); s.open(); while (!s.isDisposed()) { if (!d.readAndDispatch()) d.sleep(); } d.dispose(); } public static void main(String[] argv) { new ListExample2(); }
}
</source>
List Example 3
<source lang="java">
import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.List; import org.eclipse.swt.widgets.Shell; public class ListExample3 {
Display d; Shell s; ListExample3() { d = new Display(); s = new Shell(d); s.setSize(250, 250); s.setText("A List Example"); final List l = new List(s, SWT.MULTI | SWT.BORDER); l.setBounds(50, 50, 75, 75); l.add("Item One"); l.add("Item Two"); l.add("Item Three"); l.add("Item Four"); l.add("Item Five"); final Button b1 = new Button(s, SWT.PUSH | SWT.BORDER); b1.setBounds(150, 150, 50, 25); b1.setText("Click Me"); b1.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { String selected[] = l.getSelection(); for (int i = 0; i < selected.length; i++) { System.out.println(selected[i]); } } }); s.open(); while (!s.isDisposed()) { if (!d.readAndDispatch()) d.sleep(); } d.dispose(); } public static void main(String[] argv) { new ListExample3(); }
}
</source>
Print selected items in a list
<source lang="java">
/*
* List example snippet: print selected items in a list * * For a list of all SWT example snippets see * http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-swt-home/dev.html#snippets */
import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.List; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Shell; public class Snippet59 {
public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display); final List list = new List(shell, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL); for (int i = 0; i < 128; i++) list.add("Item " + i); list.setBounds(0, 0, 100, 100); list.addListener(SWT.Selection, new Listener() { public void handleEvent(Event e) { String string = ""; int[] selection = list.getSelectionIndices(); for (int i = 0; i < selection.length; i++) string += selection[i] + " "; System.out.println("Selection={" + string + "}"); } }); list.addListener(SWT.DefaultSelection, new Listener() { public void handleEvent(Event e) { String string = ""; int[] selection = list.getSelectionIndices(); for (int i = 0; i < selection.length; i++) string += selection[i] + " "; System.out.println("DefaultSelection={" + string + "}"); } }); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); }
}
</source>
Sample List
<source lang="java">
/******************************************************************************
* Copyright (c) 1998, 2004 Jackwind Li Guojie * All right reserved. * * Created on Feb 8, 2004 8:21:31 PM by JACK * $Id$ * * visit: http://www.asprise.ru/swt *****************************************************************************/
import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; 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 SampleList {
Display display = new Display(); Shell shell = new Shell(display); public SampleList() { init(); RowLayout rowLayout = new RowLayout(); shell.setLayout(rowLayout); (new Label(shell, SWT.NULL)).setText("What programming languages are you proficient in? "); final List list = new List(shell, SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL); String[] languages = new String[]{"Java", "C", "C++", "SmallTalk"}; for(int i=0; i<languages.length; i++) list.add(languages[i]); list.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent e) { System.err.println(list.getSelectionIndex()); int[] indices = list.getSelectionIndices(); String[] items = list.getSelection(); StringBuffer sb = new StringBuffer("Selected indices: "); for(int i=0; i < indices.length; i++) { sb.append(indices[i]); sb.append("("); sb.append(items[i]); sb.append(")"); if(i == indices.length-1) sb.append("."); else sb.append(", "); } System.out.println(sb.toString()); } public void widgetDefaultSelected(SelectionEvent e) { int[] indices = list.getSelectionIndices(); String[] items = list.getSelection(); StringBuffer sb = new StringBuffer("Default selected indices: "); for(int i=0; i < indices.length; i++) { sb.append(indices[i]); sb.append("("); sb.append(items[i]); sb.append(")"); if(i == indices.length-1) sb.append("."); else sb.append(", "); } System.out.println(sb.toString()); } }); list.selectAll(); //list.select(1); shell.pack(); shell.open(); //textUser.forceFocus(); // Set up the event loop. while (!shell.isDisposed()) { if (!display.readAndDispatch()) { // If no more entries in event queue display.sleep(); } } display.dispose(); } private void init() { } public static void main(String[] args) { new SampleList(); }
}
</source>
Single Multi Lists
<source lang="java">
/******************************************************************************
* Copyright (c) 1998, 2004 Jackwind Li Guojie * All right reserved. * * Created on Feb 8, 2004 8:00:38 PM by JACK * $Id$ * * visit: http://www.asprise.ru/swt *****************************************************************************/
import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridLayout; 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 SingleMultiLists {
Display display = new Display(); Shell shell = new Shell(display); public SingleMultiLists() { init(); GridLayout gridLayout = new GridLayout(2, true); shell.setLayout(gridLayout); (new Label(shell, SWT.NULL)).setText("SINGLE"); (new Label(shell, SWT.NULL)).setText("MULTI"); List singleSelectList = new List(shell, SWT.BORDER); List mutliSelectList = new List(shell, SWT.MULTI | SWT.BORDER); String[] items = new String[]{"Item 1", "Item 2", "Item 3", "Item 4"}; for(int i=0; i<items.length; i++) { singleSelectList.add(items[i]); mutliSelectList.add(items[i]); } shell.pack(); shell.open(); //textUser.forceFocus(); // Set up the event loop. while (!shell.isDisposed()) { if (!display.readAndDispatch()) { // If no more entries in event queue display.sleep(); } } display.dispose(); } private void init() { } public static void main(String[] args) { new SingleMultiLists(); }
}
</source>
SWT List Composite
<source lang="java">
import java.util.ArrayList; import java.util.List; import org.eclipse.jface.viewers.IStructuredContentProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.ListViewer; import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.ViewerFilter; import org.eclipse.jface.viewers.ViewerSorter; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.ruposite; public class Ch8ListComposite extends Composite {
public Ch8ListComposite(Composite parent) { super(parent, SWT.NULL); populateControl(); } protected void populateControl() { FillLayout compositeLayout = new FillLayout(); setLayout(compositeLayout); int[] styles = { SWT.SINGLE, SWT.MULTI }; for (int style = 0; style < styles.length; style++) { createListViewer(styles[style]); } } private void createListViewer(int style) { ListViewer viewer = new ListViewer(this, style); viewer.setLabelProvider(new LabelProvider() { public String getText(Object element) { return ((ListItem) element).name; } }); viewer.addFilter(new ViewerFilter() { public boolean select(Viewer viewer, Object parent, Object element) { return ((ListItem) element).value % 2 == 0; } }); viewer.setSorter(new ViewerSorter() { public int compare(Viewer viewer, Object obj1, Object obj2) { return ((ListItem) obj2).value - ((ListItem) obj1).value; } }); viewer.setContentProvider(new IStructuredContentProvider() { public Object[] getElements(Object inputElement) { return ((List) inputElement).toArray(); } public void dispose() { } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } }); List input = new ArrayList(); for (int i = 0; i < 20; i++) { input.add(new ListItem("item " + i, i)); } viewer.setInput(input); }
} class ListItem {
public String name; public int value; public ListItem(String n, int v) { name = n; value = v; }
}
</source>
SWT List Example Demo
<source lang="java">
import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.List; import org.eclipse.swt.widgets.Shell; /**
* @author Steven Holzner * */
public class SWTListExampleDemo {
public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display); shell.setText("List Example"); shell.setSize(300, 200); shell.setLayout(new FillLayout(SWT.VERTICAL)); final List list = new List(shell, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL); for (int loopIndex = 0; loopIndex < 100; loopIndex++) { list.add("Item " + loopIndex); } list.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent event) { int[] selections = list.getSelectionIndices(); String outText = ""; for (int loopIndex = 0; loopIndex < selections.length; loopIndex++) outText += selections[loopIndex] + " "; System.out.println("You selected: " + outText); } public void widgetDefaultSelected(SelectionEvent event) { int[] selections = list.getSelectionIndices(); String outText = ""; for (int loopIndex = 0; loopIndex < selections.length; loopIndex++) outText += selections[loopIndex] + " "; System.out.println("You selected: " + outText); } }); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); }
}
</source>
SWT List Selection Event
<source lang="java">
import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.List; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; public class ListClass {
public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display); shell.setText("List Example"); shell.setSize(300, 200); final List list = new List(shell, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL); list.setBounds(40, 20, 220, 100); for (int loopIndex = 0; loopIndex < 9; loopIndex++) { list.add("Item Number " + loopIndex); } final Text text = new Text(shell, SWT.BORDER); text.setBounds(60, 130, 160, 25); list.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent event) { int[] selectedItems = list.getSelectionIndices(); String outString = ""; for (int loopIndex = 0; loopIndex < selectedItems.length; loopIndex++) outString += selectedItems[loopIndex] + " "; text.setText("Selected Items: " + outString); } public void widgetDefaultSelected(SelectionEvent event) { int[] selectedItems = list.getSelectionIndices(); String outString = ""; for (int loopIndex = 0; loopIndex < selectedItems.length; loopIndex++) outString += selectedItems[loopIndex] + " "; System.out.println("Selected Items: " + outString); } }); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); }
}
</source>