Java tutorial
/****************************************************************************** * All Right Reserved. * Copyright (c) 1998, 2004 Jackwind Li Guojie * * Created on Mar 16, 2004 7:20:52 PM by JACK * $Id$ * *****************************************************************************/ import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.Font; import org.eclipse.swt.graphics.FontData; import org.eclipse.swt.graphics.RGB; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.ColorDialog; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.FontDialog; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Shell; public class FormattedText { Display display = new Display(); Shell shell = new Shell(display); // the label used to display the text. Label label; Button buttonColor; Button buttonFont; // current selected color. Color color; // current selected font. Font font; public FormattedText() { label = new Label(shell, SWT.BORDER | SWT.WRAP); label.setBackground(display.getSystemColor(SWT.COLOR_WHITE)); label.setText("Java UI Programming with SWT/JFace"); buttonColor = new Button(shell, SWT.PUSH); buttonColor.setText("Change color"); buttonColor.addListener(SWT.Selection, new Listener() { public void handleEvent(Event event) { ColorDialog colorDialog = new ColorDialog(shell); if (color != null) colorDialog.setRGB(color.getRGB()); RGB value = colorDialog.open(); if (value != null) { if (color != null) color.dispose(); color = new Color(display, value); label.setForeground(color); } else { System.out.println("Setting foreground color action canceled."); } } }); buttonFont = new Button(shell, SWT.PUSH); buttonFont.setText("Change font"); buttonFont.addListener(SWT.Selection, new Listener() { public void handleEvent(Event event) { FontDialog fontDialog = new FontDialog(shell); if (font != null) fontDialog.setFontList(font.getFontData()); FontData fontData = fontDialog.open(); if (fontData != null) { if (font != null) font.dispose(); font = new Font(display, fontData); label.setFont(font); } else { System.out.println("Setting font action canceled."); } } }); label.setBounds(0, 0, 300, 120); buttonColor.setBounds(50, 130, 90, 25); buttonFont.setBounds(160, 130, 90, 25); shell.setSize(300, 190); 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 FormattedText(); } }