Java/SWT JFace Eclipse/Radio Button

Материал из Java эксперт
Перейти к: навигация, поиск

force radio behavior on two different composites

/*
 * Composite example snippet: force radio behavior on two different composites
 *
 * For a list of all SWT example snippets see
 * http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-swt-home/dev.html#snippets
 */
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.ruposite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
public class Snippet115 {
public static void main (String [] args) {
  Display display = new Display ();
  Shell shell = new Shell (display);
  shell.setLayout (new RowLayout (SWT.VERTICAL));
  Composite c1 = new Composite (shell, SWT.BORDER | SWT.NO_RADIO_GROUP);
  c1.setLayout (new RowLayout ());
  Composite c2 = new Composite (shell, SWT.BORDER | SWT.NO_RADIO_GROUP);
  c2.setLayout (new RowLayout ());
  final Composite [] composites = new Composite [] {c1, c2};
  Listener radioGroup = new Listener () {
    public void handleEvent (Event event) {
      for (int i=0; i<composites.length; i++) {
        Composite composite = composites [i];
        Control [] children = composite.getChildren ();
        for (int j=0; j<children.length; j++) {
          Control child = children [j];
          if (child instanceof Button) {
            Button button = (Button) child;
            if ((button.getStyle () & SWT.RADIO) != 0) button.setSelection (false);
          }
        }
      }
      Button button = (Button) event.widget;
      button.setSelection (true);
    }
  };
  for (int i=0; i<4; i++) {
    Button button = new Button (c1, SWT.RADIO);
    button.setText ("Button " + i);
    button.addListener (SWT.Selection, radioGroup);
  }
  for (int i=0; i<4; i++) {
    Button button = new Button (c2, SWT.RADIO);
    button.setText ("Button " + (i + 4));
    button.addListener (SWT.Selection, radioGroup);
  }
  shell.pack ();
  shell.open ();
  while (!shell.isDisposed()) {
    if (!display.readAndDispatch ()) display.sleep ();
  }
  display.dispose ();
}
}





Radio Buttons

/******************************************************************************
 * Copyright (c) 1998, 2004 Jackwind Li Guojie
 * All right reserved. 
 * 
 * Created on Jan 26, 2004 4:50:27 PM by JACK
 * $Id$
 * 
 * visit: http://www.asprise.ru/swt
 *****************************************************************************/
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.ruposite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
public class RadioButtons {
  public RadioButtons() {
    Display display = new Display();
    Shell shell = new Shell(display);
    
    shell.setLayout(new RowLayout());
    
    Label label = new Label(shell, SWT.NULL);
    label.setText("Gender: ");
    label.setBackground(display.getSystemColor(SWT.COLOR_YELLOW));
    
    Button femaleButton = new Button(shell, SWT.RADIO);
    femaleButton.setText("F");
    
    Button maleButton = new Button(shell, SWT.RADIO);
    maleButton.setText("M");
    
    label = new Label(shell, SWT.NULL);
    label.setText("  Title: ");
    label.setBackground(display.getSystemColor(SWT.COLOR_YELLOW));
    
    Composite composite = new Composite(shell, SWT.NULL);
    composite.setLayout(new RowLayout());
    
    Button mrButton = new Button(composite, SWT.RADIO);
    mrButton.setText("Mr.");
    Button mrsButton = new Button(composite, SWT.RADIO);
    mrsButton.setText("Mrs.");
    Button msButton = new Button(composite, SWT.RADIO);
    msButton.setText("Ms.");
    Button drButton = new Button(composite, SWT.RADIO);
    drButton.setText("Dr.");  
    shell.pack();
    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 RadioButtons();
  }
}





SWT Radio Button

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class MainButton {
  public static void main(String[] args) {
    final Display display = new Display();
    Shell shell = new Shell(display);
    shell.setText("Radio Buttons");
    shell.pack();
    Button[] radios = new Button[3];
    radios[0] = new Button(shell, SWT.RADIO);
    radios[0].setSelection(true);
    radios[0].setText("Choice 1");
    radios[0].setBounds(10, 5, 75, 30);
    radios[1] = new Button(shell, SWT.RADIO);
    radios[1].setText("Choice 2");
    radios[1].setBounds(10, 30, 75, 30);
    radios[2] = new Button(shell, SWT.RADIO);
    radios[2].setText("Choice 3");
    radios[2].setBounds(10, 55, 75, 30);
    shell.open();
    shell.pack();
    while (!shell.isDisposed()) {
      if (!display.readAndDispatch())
        display.sleep();
    }
    display.dispose();
  }
}