您的位置:首页 > 编程语言 > Java开发

JAVA.SWT/JFace: SWT基本组件之按钮(Button)

2014-02-25 17:41 369 查看
《Eclipse SWT/JFACE 核心应用》 清华大学出版社 5.2 按钮(Button)

    按钮有普通按钮(SWT.PUSH)、单选按钮(SWT.RADIO)、多选按钮(SWT.CHECK)、箭头按钮(SWT.ARROW)和切换按钮(SWT.TOGGLE)几种类型。

    同时,也可以设置按钮的样式。设置按钮文字对齐的样式有SWT.LEFT、SWT.RIGHT和SWT.CENTER。设置按钮的外观风格的样式有SWT.FLAT和SWT.BORDER。

1. 普通按钮(SWT.PUSH)

package www.swt.com;

import org.eclipse.swt.SWT;

import org.eclipse.swt.layout.RowLayout;

import org.eclipse.swt.widgets.Button;

import org.eclipse.swt.widgets.Display;

import org.eclipse.swt.widgets.Shell;

public class testButton {

/**

* @param args

*/

public static void main(String[] args) {

   Display display = new Display();

   Shell shell = new Shell(display);

   shell.setSize(600, 100);

   shell.setLayout(new RowLayout(SWT.HORIZONTAL));

   shell.setText("Button");

  

   Button bt1 = new Button(shell, SWT.PUSH | SWT.LEFT);

   bt1.setText("SWT.LEFT");

   bt1.setToolTipText("SWT.LEFT"); //悬浮提示

  

   Button bt2 = new Button(shell, SWT.PUSH | SWT.RIGHT);

   bt2.setText("SWT.RIGHT");

   bt2.setToolTipText("SWT.RIGHT");

  

   Button bt3 = new Button(shell, SWT.PUSH | SWT.CENTER);

   bt3.setText("SWT.CENTER");

   bt3.setToolTipText("SWT.CENTER");

  

   Button bt4 = new Button(shell, SWT.PUSH | SWT.FLAT);

   bt4.setText("SWT.FLAT");

   bt4.setToolTipText("SWT.FLAT");

  

   Button bt5 = new Button(shell, SWT.PUSH | SWT.BORDER);

   bt5.setText("SWT.BORDER");

   bt5.setToolTipText("SWT.BORDER");

  

//   bt1.pack();

//   bt2.pack();

//   bt3.pack();

//   bt4.pack();

//   bt5.pack();

   shell.open();

   shell.pack();

  

   while (!shell.isDisposed()) {

    if (!display.readAndDispatch()) {

     display.sleep();

    }

   }

   display.dispose();  

}

}

显示效果:



2. 切换按钮(SWT.TOGGLE)

切换按钮单击后保持按下状态,再次单击时恢复初始状态。

   Button bt1 = new Button(shell, SWT.TOGGLE | SWT.LEFT);

   bt1.setText("SWT.LEFT");

   bt1.setToolTipText("SWT.LEFT"); //悬浮提示

  

   Button bt2 = new Button(shell, SWT.TOGGLE | SWT.FLAT);

   bt2.setText("SWT.FLAT");

   bt2.setToolTipText("SWT.FLAT");

  

   Button bt3 = new Button(shell, SWT.PUSH | SWT.BORDER);

   bt3.setText("SWT.BORDER");

   bt3.setToolTipText("SWT.BORDER");

显示效果:



3. 箭头按钮(SWT.ARROW)

    箭头按钮是带有小箭头的按钮,创建时需要指定箭头的方向SWT.UP、SWT.DOWN、SWT.LEFT和SWT.RIGHT,若不指定方向,默认为SWT.UP。

   Button bt1 = new Button(shell, SWT.ARROW | SWT.UP);

   Button bt2 = new Button(shell, SWT.ARROW | SWT.DOWN);

   Button bt3 = new Button(shell, SWT.ARROW | SWT.LEFT);

   Button bt4 = new Button(shell, SWT.ARROW | SWT.RIGHT);

   Button bt5 = new Button(shell, SWT.ARROW | SWT.FLAT);

   Button bt6 = new Button(shell, SWT.ARROW | SWT.BORDER);

显示效果:



4. 单选按钮(SWT.RADIO)

   Group group1 = new Group(shell, SWT.SHADOW_ETCHED_OUT);

   group1.setLayout(new FillLayout(SWT.VERTICAL));

   group1.setText("这是一组样式");

  

   Button bt1 = new Button(group1, SWT.RADIO | SWT.LEFT);

   bt1.setText("SWT.LEFT");

   Button bt2 = new Button(group1, SWT.RADIO | SWT.RIGHT);

   bt2.setText("SWT.RIGHT");

   Button bt3 = new Button(group1, SWT.RADIO | SWT.CENTER);

   bt3.setText("SWT.CENTER");

  

   //////////////

   Group group2 = new Group(shell, SWT.SHADOW_ETCHED_OUT);

   group2.setLayout(new FillLayout(SWT.VERTICAL));

   group2.setText("这是另一组样式");

  

   Button bt4 = new Button(group2, SWT.RADIO | SWT.FLAT);

   bt4.setText("SWT.FLAT");

   bt4.setSelection(true);

   Button bt5 = new Button(group2, SWT.RADIO | SWT.BORDER);

   bt5.setText("SWT.BORDER");

   Button bt6 = new Button(group2, SWT.RADIO);

   bt6.setText("SWT.RADIO");

对于单选按钮,创建对象时要指定按钮所属的父类。

显示效果:



   group2.setVisible(false); 显示效果:



5. 多选按钮(SWT.CHECK)

    Group group = new Group(shell, SWT.SHADOW_ETCHED_OUT);

    group.setLayout(new FillLayout(SWT.VERTICAL));

    group.setText("不同样式的多选按钮");

  

   Button bt1 = new Button(group, SWT.CHECK | SWT.LEFT);

   bt1.setText("SWT.LEFT");

   Button bt2 = new Button(group, SWT.CHECK | SWT.RIGHT);

   bt2.setText("SWT.RIGHT");

   Button bt3 = new Button(group, SWT.CHECK | SWT.CENTER);

   bt3.setText("SWT.CENTER");

   Button bt4 = new Button(group, SWT.CHECK | SWT.FLAT);

   bt4.setText("SWT.FLAT");

   Button bt5 = new Button(group, SWT.CHECK | SWT.BORDER);

   bt5.setText("SWT.BORDER");

显示效果:



增加事件:

   RowLayout layout = new RowLayout(SWT.VERTICAL);

   layout.marginWidth = 10;

   shell.setLayout(layout);

  

   Group group = new Group(shell, SWT.SHADOW_ETCHED_OUT);

   group.setLayout(new FillLayout(SWT.VERTICAL));

   group.setText("您的爱好是:");

  

   final Button[] button = new Button[5];

   String[] items = {"看书", "游泳", "音乐", "睡觉", "逛街"};

  

   for (int i = 0; i < button.length; i++) {

    button[i] =new Button(group, SWT.CHECK);

    button[i].setText(items[i]);

   }

  

   Button ok = new Button(group, SWT.PUSH);

   ok.setText("确定");

   ok.addSelectionListener(new SelectionAdapter() {

    public void widgetSelected(SelectionEvent e) {

     for (int i = 0; i < button.length; i++) {

      if (button[i].getSelection()) {

       System.out.println("您选择了:"+button[i].getText());

      }

     }

    }

   });

显示效果:



6. 常用的方法

设置和获取按钮文本:setText、getText

设置和获取按钮是否被选中:setSelection、getSelection

设置和获取按钮图标:setImage、getImage

button.setImage(display.getSystemImage(SWT.ICON_ERROR))

button.setImage(new Image(display, "F:\\edit.gif"))

设置和获取按钮文字对齐方式:setAlignment、getAlignment

添加代码:

   ok.setImage(display.getSystemImage(SWT.ICON_INFORMATION));

显示效果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java SWT