FormattedText.java Source code

Java tutorial

Introduction

Here is the source code for FormattedText.java

Source

/******************************************************************************
 * 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();
    }
}