⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gradientdialog.java

📁 SUN公司eclipse3.2.2经典例子
💻 JAVA
字号:
/******************************************************************************* * Copyright (c) 2006 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: *     IBM Corporation - initial API and implementation *******************************************************************************/package org.eclipse.swt.examples.graphics;import java.util.*;import org.eclipse.swt.*;import org.eclipse.swt.graphics.*;import org.eclipse.swt.layout.*;import org.eclipse.swt.widgets.*;/** * This dialog is used for prompting the user to select two colors for the * creation of a gradient. */public class GradientDialog extends Dialog {	Canvas canvas;	Button colorButton1, colorButton2;		// color buttons	Button okButton, cancelButton;	Menu menu1, menu2;		RGB rgb1, rgb2;			// first and second color used in gradient	int returnVal; 			// value to be returned by open(), set to SWT.OK 							// if the ok button has been pressed			ArrayList resources;				public GradientDialog(Shell parent) {				this (parent, SWT.PRIMARY_MODAL);	}		public GradientDialog(Shell parent, int style) {		super(parent, style);		rgb1 = rgb2 = null;		returnVal = SWT.CANCEL;		resources = new ArrayList();	}		/**	 * Sets up the dialog and opens it.	 * */	public int open() {		final Shell dialog = new Shell(getParent(), SWT.DIALOG_TRIM | SWT.RESIZE | getStyle());		dialog.setText(GraphicsExample.getResourceString("Gradient")); //$NON-NLS-1$						GridLayout gridLayout = new GridLayout();	    gridLayout.numColumns = 2;	    gridLayout.marginHeight = 10;	    gridLayout.marginWidth = 10;	    dialog.setLayout(gridLayout);	    	    // create the controls in the dialog	    createDialogControls(dialog);				dialog.addListener(SWT.Close, new Listener() {			public void handleEvent(Event event) {				for (int i = 0; i < resources.size(); i++) {					Object obj = resources.get(i);					if (obj != null && obj instanceof Resource) {						((Resource) obj).dispose();					}				}				dialog.dispose();			}		});			dialog.setDefaultButton (okButton);		dialog.pack ();		Rectangle rect = getParent().getMonitor().getBounds();		Rectangle bounds = dialog.getBounds();		dialog.setLocation(rect.x + (rect.width - bounds.width) / 2, rect.y + (rect.height - bounds.height) / 2);		dialog.setMinimumSize(bounds.width, bounds.height);				dialog.open ();				Display display = getParent().getDisplay();		while (!dialog.isDisposed()) {			if (!display.readAndDispatch()) display.sleep();		}				if (menu1 != null) {			menu1.dispose();			menu1 = null;		}				if (menu2 != null) {			menu2.dispose();			menu2 = null;		}		return returnVal;	}		/**	 * Creates the controls of the dialog.	 * */	public void createDialogControls(final Shell parent) {		final Display display = parent.getDisplay();				// message		Label message = new Label(parent, SWT.NONE); 		message.setText(GraphicsExample.getResourceString("GradientDlgMsg"));		GridData gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);		gridData.horizontalSpan = 2;		message.setLayoutData(gridData);				// default colors are white and black		if (rgb1 == null || rgb2 == null) {			rgb1 = display.getSystemColor(SWT.COLOR_WHITE).getRGB();			rgb2 = display.getSystemColor(SWT.COLOR_BLACK).getRGB();		}					// canvas		canvas = new Canvas(parent, SWT.NONE);		gridData = new GridData(GridData.FILL_BOTH);		gridData.widthHint = 200;		gridData.heightHint = 100;		canvas.setLayoutData(gridData);		canvas.addListener (SWT.Paint, new Listener () {			public void handleEvent (Event e) {				Image preview = null;				Point size = canvas.getSize();				Color color1 = new Color(display, rgb1);				Color color2 = new Color(display, rgb2);				preview = GraphicsExample.createImage(display, color1, color2, size.x, size.y);				if (preview != null) {					e.gc.drawImage (preview, 0, 0);				}				preview.dispose();				color1.dispose();				color2.dispose();			}		});				// composite used for both color buttons		Composite colorButtonComp = new Composite(parent, SWT.NONE);				// layout buttons		RowLayout layout = new RowLayout();;		layout.type = SWT.VERTICAL;		layout.pack = false;		colorButtonComp.setLayout(layout);		// position composite		gridData = new GridData(GridData.VERTICAL_ALIGN_BEGINNING);	    colorButtonComp.setLayoutData(gridData);	    		ColorMenu colorMenu = new ColorMenu();				// color controls: first color		colorButton1 = new Button(colorButtonComp, SWT.PUSH);		colorButton1.setText(GraphicsExample.getResourceString("GradientDlgButton1"));		Color color1 = new Color(display, rgb1);		Image img1 = GraphicsExample.createImage(display, color1);		color1.dispose();		colorButton1.setImage(img1);		resources.add(img1);		menu1 = colorMenu.createMenu(parent.getParent(), new ColorListener() {			public void setColor(GraphicsBackground gb) {				rgb1 = gb.getBgColor1().getRGB();				colorButton1.setImage(gb.getThumbNail());				if (canvas != null) canvas.redraw();			}		});		colorButton1.addListener(SWT.Selection, new Listener() { 			public void handleEvent(Event event) {				final Button button = (Button) event.widget;				final Composite parent = button.getParent(); 				Rectangle bounds = button.getBounds();				Point point = parent.toDisplay(new Point(bounds.x, bounds.y));				menu1.setLocation(point.x, point.y + bounds.height);				menu1.setVisible(true);			}		});				// color controls: second color 		colorButton2 = new Button(colorButtonComp, SWT.PUSH);		colorButton2.setText(GraphicsExample.getResourceString("GradientDlgButton2"));		Color color2 = new Color(display, rgb2);		Image img2 = GraphicsExample.createImage(display, color2);		color2.dispose();		colorButton2.setImage(img2);		resources.add(img2);		menu2 = colorMenu.createMenu(parent.getParent(), new ColorListener() {			public void setColor(GraphicsBackground gb) {				rgb2 = gb.getBgColor1().getRGB();				colorButton2.setImage(gb.getThumbNail());				if (canvas != null) canvas.redraw();			}		});		colorButton2.addListener(SWT.Selection, new Listener() { 			public void handleEvent(Event event) {				final Button button = (Button) event.widget;				final Composite parent = button.getParent(); 				Rectangle bounds = button.getBounds();				Point point = parent.toDisplay(new Point(bounds.x, bounds.y));				menu2.setLocation(point.x, point.y + bounds.height);				menu2.setVisible(true);			}		});				// composite used for ok and cancel buttons		Composite okCancelComp = new Composite(parent, SWT.NONE);		// layout buttons		RowLayout rowLayout = new RowLayout();		rowLayout.pack = false;		rowLayout.marginTop = 5;		okCancelComp.setLayout(rowLayout);		// position composite		gridData = new GridData(GridData.HORIZONTAL_ALIGN_END);	    gridData.horizontalSpan = 2;	    okCancelComp.setLayoutData(gridData);			    // OK button		okButton = new Button (okCancelComp, SWT.PUSH);		okButton.setText("&OK");		okButton.addListener(SWT.Selection, new Listener() {			public void handleEvent(Event event) {				returnVal = SWT.OK;				parent.close();			}		});				// cancel button		cancelButton = new Button (okCancelComp, SWT.PUSH);		cancelButton.setText("&Cancel");		cancelButton.addListener(SWT.Selection, new Listener() {			public void handleEvent(Event event) {				parent.close();			}		});	}		/**	 * Returns the first RGB selected by the user.	 * */	public RGB getFirstRGB() {		return rgb1;			}		/**	 * Sets the first RGB.	 * @param rgb	 */	public void setFirstRGB(RGB rgb) {		this.rgb1 = rgb;	}		/**	 * Returns the second RGB selected by the user.	 * */	public RGB getSecondRGB() {		return rgb2;	}	/**	 * Sets the second RGB.	 * @param rgb	 */	public void setSecondRGB(RGB rgb) {		this.rgb2 = rgb;	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -