The SWT ColorDialog Class

The SWT ColorDialog class permits you to enable the user to easily change the color being used by your application to display widgets or text. The dialog provides a graphical mechanism for choosing the desired color, which can then be passed to the setBackground( ) method of a widget.

How do I do that?

You use the ColorDialog in the same manner as the dialogs that have already been discussed. Example 17-4 demonstrates how to use ColorDialog to change the background color of a Text widget.

Example 17-4. Using ColorDialog

import org.eclipse.swt.widgets.*;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.layout.FillLayout;

public class ColorDialogExample {
    
    Display d;
    Shell s;
    ColorDialogExample( )    {
         d = new Display( );
         s = new Shell(d);
        s.setSize(400,400);
        s.setImage(new Image(d, "c:\\icons\\JavaCup.ico"));
        s.setText("A ColorDialog Example");
        s.setLayout(new FillLayout(SWT.VERTICAL));    
        final Text t = new Text(s, SWT.BORDER | SWT.MULTI);
        final Button b = new Button(s, SWT.PUSH | SWT.BORDER);
        b.setText("Change Color");
        b.addSelectionListener(new SelectionAdapter( ) {
            public void widgetSelected(SelectionEvent e) {
                ColorDialog cd = new ColorDialog(s);
                cd.setText("ColorDialog Demo");
                cd.setRGB(new RGB(255,255,255));
                RGB newColor = cd.open( );
                if(newColor==null) ...

Get SWT: A Developer's Notebook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.