Demonstrates ControlListeners : Event « SWT JFace Eclipse « Java

Demonstrates ControlListeners

Demonstrates ControlListeners

//Send questions, comments, bug reports, etc. to the authors:

//Rob Warner (
//Robert Harris (

import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;

 * This class demonstrates ControlListeners
public class ControlListenerExample {
   * Runs the application
  public void run() {
    Display display = new Display();
    Shell shell = new Shell(display);
    Image image = new Image(display, "java2s.gif");
    createContents(shell, image);

    while (!shell.isDisposed()) {
      if (!display.readAndDispatch()) {
    if (image != null) image.dispose();

   * Creates the main window's contents
   * @param shell the main window
   * @param image the image
  private void createContents(Shell shell, Image image) {
    shell.setLayout(new GridLayout());

    // Create a label to hold the image
    Label label = new Label(shell, SWT.NONE);
    label.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));

    // Add the listener
    shell.addControlListener(new ControlAdapter() {
      public void controlResized(ControlEvent event) {
        // Get the event source (the shell)
        Shell shell = (Shell) event.getSource();

        // Get the source's data (the label)
        Label label = (Label) shell.getData();

        // Determine how big the shell should be to fit the image
        Rectangle rect = shell.getClientArea();
        ImageData data = label.getImage().getImageData();

        // If the shell is too small, hide the image
        if (rect.width < data.width || rect.height < data.height) {
          shell.setText("Too small.");
          label.setText("I'm melting!");
        } else {
          // He fits!
          shell.setText("Happy Guy Fits!");

   * Application entry point
   * @param args the command line arguments
  public static void main(String[] args) {
    new ControlListenerExample().run();


Related examples in the same category

1.ModifyEvent: Temperature Converter JFaceModifyEvent: Temperature Converter JFace
2.Mouse Event Listener Mouse Event Listener
3.Utility class for event handling
4.Demonstrates various listenersDemonstrates various listeners
5.Demonstrates mouse eventsDemonstrates mouse events
6.SelectionListener and DisposeListenerSelectionListener and DisposeListener
7.Demonstrates FocusListenerDemonstrates FocusListener
8.Demonstrates LineBackgroundListenersDemonstrates LineBackgroundListeners
9.Key Listener Example