Add ControlListener to control : Widget « SWT « Java Tutorial






Add ControlListener to control
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ControlEvent;
import org.eclipse.swt.events.ControlListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class ControlListenerAdd {
  static int count = 0;

  public static void main(String[] args) {
    Display display = new Display();
    final Shell shell = new Shell(display);

    shell.setLayout(new RowLayout());

    final Composite composite = new Composite(shell, SWT.BORDER);
    composite.setLayout(new RowLayout());
    composite.setBackground(display.getSystemColor(SWT.COLOR_YELLOW));
    composite.addControlListener(new ControlListener() {
      public void controlMoved(ControlEvent e) {
      }

      public void controlResized(ControlEvent e) {
        System.out.println("Composite resize.");
      }
    });    
    
    Button buttonAdd = new Button(shell, SWT.PUSH);
    buttonAdd.setText("Add new button");
    buttonAdd.addSelectionListener(new SelectionAdapter() {
      public void widgetSelected(SelectionEvent e) {
        Button button = new Button(composite, SWT.PUSH);
        button.setText("Button #" + (count++));
        composite.layout(true);
        composite.pack();
      }
    });

    shell.setSize(450, 100);
    shell.open();

    while (!shell.isDisposed()) {
      if (!display.readAndDispatch()) {
        display.sleep();
      }
    }
    display.dispose();
  }
}








17.2.Widget
17.2.1.Set Control SizeSet Control Size
17.2.2.The Widget Class
17.2.3.Get Widget StyleGet Widget Style
17.2.4.Widget can be disposed: addDisposeListener(DisposeListener listener)Widget can be disposed: addDisposeListener(DisposeListener listener)
17.2.5.Control Size and locationControl Size and location
17.2.6.Set BoundsSet Bounds
17.2.7.Set Location and SizeSet Location and Size
17.2.8.Control: set a background image (a dynamic gradient)Control: set a background image (a dynamic gradient)
17.2.9.Inherit a background color or imageInherit a background color or image
17.2.10.Setting Widget boundsSetting Widget bounds
17.2.11.Compute Widget SizeCompute Widget Size
17.2.12.Get Preferred sizeGet Preferred size
17.2.13.Relative position to ControlRelative position to Control
17.2.14.Relative position to DisplayRelative position to Display
17.2.15.Add ControlListener to controlAdd ControlListener to control