Java tutorial
/******************************************************************************* * Copyright (c) 2004 Berthold Daum. All rights reserved. This program and the * accompanying materials are made available under the terms of the Common * Public License v1.0 which accompanies this distribution, and is available at * http://www.eclipse.org/legal/cpl-v10.html * * Contributors: Berthold Daum ******************************************************************************/ import org.eclipse.swt.SWT; import org.eclipse.swt.events.DisposeEvent; import org.eclipse.swt.events.DisposeListener; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.TreeAdapter; import org.eclipse.swt.events.TreeEvent; import org.eclipse.swt.events.VerifyEvent; import org.eclipse.swt.events.VerifyListener; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Combo; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.List; import org.eclipse.swt.widgets.MessageBox; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Slider; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; import org.eclipse.swt.widgets.TableItem; import org.eclipse.swt.widgets.Text; import org.eclipse.swt.widgets.Tree; import org.eclipse.swt.widgets.TreeItem; public class WidgetTest2 { public WidgetTest2() { super(); } /** * MessageBox ** */ public static void main(String[] args) { // Create Display instance final Display display = new Display(); // Create top level shell (pass display as parent) final Shell toplevelShell = new Shell(display); // Set title line toplevelShell.setText("TopLevel.titleLine"); // Show shell toplevelShell.open(); while (true) { // Create message box MessageBox box = new MessageBox(toplevelShell, SWT.RETRY | SWT.CANCEL | SWT.APPLICATION_MODAL | SWT.ICON_QUESTION); // Set title box.setText("Test"); // Set message box.setMessage("Do you want to try again?"); // Open message box if (box.open() == SWT.CANCEL) break; } } /** * Composite ** */ private static final int X = 0; private static final int Y = 0; private static final int WIDTH = 300; private static final int HEIGHT = 200; public static Composite createComposite(Composite parent) { /** * Composite ** */ // Create new Composite instance final Composite composite = new Composite(parent, 0); // Get properties from the containing composite composite.setBackground(parent.getBackground()); composite.setForeground(parent.getForeground()); composite.setFont(parent.getFont()); // Set position and size composite.setBounds(X, Y, WIDTH, HEIGHT); return composite; } /** * Buttons ** */ public static Button createButton(Composite composite) { final Button button = new Button(composite, SWT.PUSH); button.setText("Press me!"); // React to click events button.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { System.out.println("Key was pressed"); } }); return button; } public static Button createImageButton(Composite composite) { final Button button = new Button(composite, SWT.PUSH); Display display = composite.getDisplay(); final Image image = new Image(display, "images/button1.gif"); button.setImage(image); // React to click events button.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { System.out.println("Key was pressed"); } }); // Dispose image when button is disposed button.addDisposeListener(new DisposeListener() { public void widgetDisposed(DisposeEvent e) { image.dispose(); } }); return button; } /** * Sliders ** */ public static Slider createSlider(Composite composite) { final Slider slider = new Slider(composite, SWT.HORIZONTAL); // Minimalwert setzen slider.setMinimum(0); // Maximalwert setzen slider.setMaximum(1000); // Inkrement fur Pfeiltasten setzen slider.setIncrement(50); // Inkrement fur Klick auf Schiebeflache setzen slider.setPageIncrement(200); // aktuelle Position setzen slider.setSelection(500); // GroBe des Handgriffs setzen slider.setThumb(200); // Auf Schiebeereignisse reagieren slider.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { System.out.println("Schieberegler verstellt: " + slider.getSelection()); } }); return slider; } /** * Text fields ** */ public static Text createText(Composite composite) { final Text text = new Text(composite, SWT.SINGLE); text.setText("Input text"); text.addSelectionListener(new SelectionAdapter() { public void widgetDefaultSelected(SelectionEvent e) { System.out.println("Enter was pressed: " + text.getSelection()); } }); text.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { System.out.println("Text after modification: " + text.getText()); } }); text.addVerifyListener(new VerifyListener() { public void verifyText(VerifyEvent e) { String s = text.getText(); System.out.println("Text before modification: " + s); // Veto: Text longer than 10 characters is prohibited if (s.length() >= 10) e.doit = false; } }); return text; } /** * Tables ** */ public static Table createTable(Composite composite) { final Table table = new Table(composite, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.FULL_SELECTION); // Create three table columns final TableColumn col1 = new TableColumn(table, SWT.LEFT); col1.setText("Column 1"); col1.setWidth(80); final TableColumn col2 = new TableColumn(table, SWT.LEFT); col2.setText("Column 2"); col2.setWidth(80); final TableColumn col3 = new TableColumn(table, SWT.LEFT); col3.setText("Column 3"); col3.setWidth(80); // Make column headers and grid lines visible table.setHeaderVisible(true); table.setLinesVisible(true); // Create table rows final TableItem item1 = new TableItem(table, 0); item1.setText(new String[] { "a", "b", "c" }); final TableItem item2 = new TableItem(table, 0); item2.setText(new String[] { "d", "c", "e" }); // Add selection listeners table.addSelectionListener(new SelectionAdapter() { public void widgetDefaultSelected(SelectionEvent e) { processSelection("Enter was pressed: "); } public void widgetSelected(SelectionEvent e) { processSelection("Table element was selected: "); } private void processSelection(String message) { // Get selected table row TableItem[] selection = table.getSelection(); // Because of SWT.SINGLE only one row was selected TableItem selectedRow = selection[0]; // Format the table elements for output String s = selectedRow.getText(0) + ", " + selectedRow.getText(1) + ", " + selectedRow.getText(2); System.out.println(message + s); } }); return table; } /** * Lists ** */ public static List createList(Composite composite) { final List list = new List(composite, SWT.MULTI); list.add("Element1"); list.add("Element2"); list.add("Element3"); list.addSelectionListener(new SelectionAdapter() { public void widgetDefaultSelected(SelectionEvent e) { processSelection("Enter was pressed: "); } public void widgetSelected(SelectionEvent e) { processSelection("List entry was selected: "); } private void processSelection(String message) { // Get selected entries String[] selection = list.getSelection(); // Format entries for output StringBuffer sb = new StringBuffer(); for (int i = 0; i < selection.length; i++) { sb.append(selection[i] + " "); } System.out.println(message + sb); } }); return list; } /** * Combos ** */ public static Combo createCombo(Composite composite) { final Combo combo = new Combo(composite, SWT.DROP_DOWN); // Listenelement erzeugen combo.add("Element1"); combo.add("Element2"); combo.add("Element3"); // Vorbelegung des Textfeldes combo.setText("Select"); // SelectionListener hinzufugen combo.addSelectionListener(new SelectionAdapter() { public void widgetDefaultSelected(SelectionEvent e) { System.out.println("Enter gedruckt: " + combo.getText()); } public void widgetSelected(SelectionEvent e) { System.out.println("Listeneintrag ausgewahlt: " + combo.getText()); } }); // ModifyListener hinzufugen combo.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { System.out.println("Text wurde modifiziert: " + combo.getText()); } }); return combo; } /** * Trees ** */ public static Tree createTree(Composite composite) { final Tree tree = new Tree(composite, SWT.SINGLE); // Oberste Knotenebene erzeugen final TreeItem node1 = new TreeItem(tree, SWT.NULL); node1.setText("Knoten 1"); final TreeItem node2 = new TreeItem(tree, SWT.NULL); node2.setText("Knoten 2"); final TreeItem node3 = new TreeItem(tree, SWT.NULL); node3.setText("Knoten 3"); // Zweite Knotenebene erzeugen final TreeItem node11 = new TreeItem(node1, SWT.NULL); node11.setText("Knoten 1.1"); final TreeItem node12 = new TreeItem(node1, SWT.NULL); node12.setText("Knoten 1.2"); // SelectionListener hinzufugen tree.addSelectionListener(new SelectionAdapter() { public void widgetDefaultSelected(SelectionEvent e) { System.out.println("Enter gedruckt: " + tree.getSelection()[0].getText()); } public void widgetSelected(SelectionEvent e) { System.out.println("Baumknoteneintrag ausgewahlt: " + tree.getSelection()[0].getText()); } }); // TreeListener hinzufugen tree.addTreeListener(new TreeAdapter() { public void treeCollapsed(TreeEvent e) { System.out.println("Knoten kollabiert: " + ((TreeItem) e.item).getText()); } public void treeExpanded(TreeEvent e) { System.out.println("Knoten expandiert: " + ((TreeItem) e.item).getText()); } }); return tree; } }