SWT中的各种参数

按钮组件(Button)

  • Button的常用样式
    SWT.PUSH / SWT.NONE 普通按钮
    SWT.CHECK 多选按钮
    SWT.RADIO 单选按钮
    //在同一个group中,多个单选按钮只可以被选中一个
    SWT.APPOW 箭头按钮
    //在创建时,要指定箭头的方向
    //SWT.UP(默认,向上箭头)、SWT.DOWN、SWT.LEFT、SWT.RIGHT
  • 按钮文字位置参数
    SWT.CENTER|SWT.NONE 居中
    SWT.LEFT 左对齐
    SWT.RIGHT 右对齐
  • 按钮样式参数
    SWT.BORDER 深陷型按钮
    SWT.FLAT 平面型按钮
  • Button的常用方法
    setText(String string) 设置标签文字
    setBounds(int x,int y,int width,int height)
    设置组件相对于容器的额坐标位置和大小
    setEnabled(Boolean enabled)设置组件是否可用
    setFont(Font font) 设置字体
    setImage(Image image) 设置显示用的图片
    setSelection(Boolean selected)
    设置是否被选中,默认为false
    setToolTipText(String string) 设置鼠标停在组件上时的提示信息
    栗子
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Shell;public class HelloWorld {public static void main(String[] args) {Display display = new Display();Shell shell = new Shell(display);shell.setText("SWT");shell.setLayout(new FillLayout(SWT.HORIZONTAL));Group group = new Group(shell,SWT.SHADOW_ETCHED_OUT);FillLayout layout = new FillLayout(SWT.HORIZONTAL);layout.marginHeight = 10;//上下空隙layout.marginWidth = 20;//左右layout.spacing = 5; //内部部件空隙group.setLayout(layout);Button b1 = new Button(group, SWT.TOGGLE|SWT.LEFT);b1.setText("SWT.LEFT");b1.setToolTipText("SWT.LEFT");Button b2 = new Button(group, SWT.TOGGLE|SWT.RIGHT);b2.setText("SWT.RIGHT");b2.setToolTipText("SWT.RIGHT");Button b3 = new Button(group, SWT.TOGGLE|SWT.CENTER);b3.setText("SWT.CENTER");b3.setToolTipText("SWT.CENTER");Button b4 = new Button(group, SWT.TOGGLE|SWT.FLAT);b4.setText("SWT.FLAT");b4.setToolTipText("SWT.FLAT");Button b5 = new Button(group, SWT.TOGGLE|SWT.BORDER);b5.setText("SWT.BORDER");b5.setToolTipText("SWT.BORDER");shell.pack();//调整布局shell.open();while(!shell.isDisposed()){if(!display.readAndDispatch())display.sleep();}//销毁displaydisplay.dispose();}
}

标签组件(Label)

  • Label的常用样式
    SWT.NONE 普通文本标签
    SWT.SEPARATOR 分割线标签
    CLabel自定义标签
  • 标签文字位置参数
    SWT.CENTER|SWT.NONE 居中
    SWT.LEFT 左对齐
    SWT.RIGHT 右对齐
  • 标签样式参数
    SWT.BORDER 深陷型按钮
    SWT.FLAT 平面型按钮

文本框组件(Text)

  • Text的常用样式
    SWT.NONE 默认式样
    SWT.CENTER
    SWT.RIGHT
    SWT.LEFT
    SWT.MULTI 可以输入多行,需回车换行
    SWT.WRAP 可以输入多行,自动换行
    SWT.PASSWORD 密码型,输入字符显示成“*”
    SWT.BORDER 深陷型
    SWT.V_SCROLL 垂直滚动条
    SWT.H_SCROLL 水平滚动条

  • Text常用方法
    setTextLimit(int limit) 文本的最大长度
    setEditable(Boolean editable) 设置是否可编辑
    setOrientation(int orirntation) 设置输入文字的方向
    SWT.RIGHT_TO_LEFT 输入时从右向左填充
    SWT.LEFT_TO_RIGHT 输入时从左向右填充
    setEchoChar(char echo)设置文本输入的字符格式
    如:setEcho("*")类似输入为密码框格式
    append(String string)向文本框中插入字符串
    getCharCount()获得文本框内字符串的长度

  • 有关文本操作的方法
    selectAll()选中所有字符
    setSelection(int start)、setSelection(int start,int end)、setSelection(Point selection) 选中指定的字符
    showSelection()显示所设置的选取文本
    clearSelection()取消所有选择
    getSelection()返回值为point,取得选中文本的额开始位置和结束位置
    getSelectionCount() 取得选取的字符串长度
    getSelectionText()返回值为String取得所选取的字符串
    copy()将选取中的字符串复制到剪贴板
    cut()将选取中的字符串剪切到剪贴板
    paste()将剪贴板上的字符粘贴到文本框

举个栗子

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;public class TextSample {public static void main(String[] args) {Display display = new Display();Shell shell = new Shell(display);shell.setText("SWT");final Text content = new Text(shell , SWT.WRAP|SWT.V_SCROLL);content.setBounds(5, 5, 325, 200);Button selectAll =  new Button(shell, SWT.NONE);selectAll.setText("全选");selectAll.setBounds(5, 225, 75, 25);selectAll.addSelectionListener(new SelectionAdapter() {public void widgetSelected(SelectionEvent e) {// TODO Auto-generated method stubcontent.selectAll();}      }); Button cancel =  new Button(shell, SWT.NONE);cancel.setText("取消全选");cancel.setBounds(90, 225, 75, 25);cancel.addSelectionListener(new SelectionAdapter() {public void widgetSelected(SelectionEvent e) {// TODO Auto-generated method stubif(content.getSelectionCount()>0)content.clearSelection();}     }); Button copy =  new Button(shell, SWT.NONE);copy.setText("复制");copy.setBounds(175, 225, 75, 25);copy.addSelectionListener(new SelectionAdapter() {public void widgetSelected(SelectionEvent e) {// TODO Auto-generated method stubcontent.copy();}        }); Button paste =  new Button(shell, SWT.NONE);paste.setText("粘贴");paste.setBounds(260, 225, 75, 25);paste.addSelectionListener(new SelectionAdapter() {public void widgetSelected(SelectionEvent e) {// TODO Auto-generated method stubcontent.paste();}       }); shell.pack();//调整布局shell.open();while(!shell.isDisposed()){if(!display.readAndDispatch())display.sleep();}//销毁displaydisplay.dispose();}
}

列表框(List)

  • List常见样式
    SWT.NONE 默认样式
    SWT.V_SCROLL 带垂直滚动条
    SWT.MULTI 允许复选
    SWT.SINGLE 允许单选

  • 常用方法
    add(String string) 在List上添加一项
    add(String string,int index) 在List的第index(从0开始)项后插入一项
    deselectAll() 使List组件中的当前选项为空
    removeAll() 将List中的所有选项清空
    setItems(String[] items) 将数组中的各项依次加入到List中
    select(int index) 将List的第index+1项设置为当前选择项
    好多栗子

package com.digiwin;import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.List;
import org.eclipse.swt.widgets.Shell;public class ListSample {public static void main(String[] args) {Display display = new Display();Shell shell = new Shell(display);shell.setText("List示例");String[] itemLeft = new String[20];String[] itemRight = new String[0];for(int i=0;i<20;i++)itemLeft[i]="item"+i;//定义列表框,可选择多个并带有垂直滚动条final List left = new List(shell,SWT.MULTI|SWT.V_SCROLL);left.setBounds(10, 10, 100, 180);left.setItems(itemLeft);left.setToolTipText("请选择列表项");final List right = new List(shell,SWT.MULTI|SWT.V_SCROLL);right.setBounds(170, 10, 100, 180);right.setItems(itemRight);right.setToolTipText("请选择列表项");//SelectionAdapter同时为多个按钮进行监听SelectionAdapter listener = new SelectionAdapter() {public void widgetSelected(SelectionEvent e) {// TODO Auto-generated method stubButton b =(Button)e.widget;if(b.getText().equals(">"))verifyValue(left.getSelection(),left,right);else if(b.getText().equals(">>"))verifyValue(left.getItems(), left, right);else if(b.getText().equals("<"))verifyValue(right.getSelection(), right, left);else if(b.getText().equals("<<"))verifyValue(right.getItems(), right, left);else if(b.getText().equals("上")){int index = right.getSelectionIndex();if(index<=0)return;String currentValue = right.getItem(index);right.setItem(index, right.getItem(index-1));right.setItem(index-1, currentValue);right.setSelection(index-1);}else if(b.getText().equals("下")){int index = right.getSelectionIndex();if(index<=0)return;String currentValue = right.getItem(index);right.setItem(index, right.getItem(index+1));right.setItem(index+1, currentValue);right.setSelection(index+1);}}public void verifyValue(String[] select, List from,List to) {// TODO Auto-generated method stubfor(int i = 0;i<select.length;i++){from.remove(select[i]);to.add(select[i]);}}};Button bt1 = new Button(shell,SWT.NONE);bt1.setText(">");bt1.setBounds(130,20,25,20);bt1.addSelectionListener(listener);Button bt2 = new Button(shell,SWT.NONE);bt2.setText(">>");bt2.setBounds(130,55,25,20);bt2.addSelectionListener(listener);Button bt3 = new Button(shell,SWT.NONE);bt3.setText("<");bt3.setBounds(130,90,25,20);bt3.addSelectionListener(listener);Button bt4 = new Button(shell,SWT.NONE);bt4.setText("<<");bt4.setBounds(130,125,25,20);bt4.addSelectionListener(listener);Button bt5 = new Button(shell,SWT.NONE);bt5.setText("上");bt5.setBounds(300,70,25,20);bt5.addSelectionListener(listener);Button bt6 = new Button(shell,SWT.NONE);bt6.setText("下");bt6.setBounds(300,105,25,20);bt6.addSelectionListener(listener);shell.setSize(350, 250);shell.open();while(!shell.isDisposed()){//如果当前窗口未被销毁if(!display.readAndDispatch())//readAndDispatch()操作系统事件队列中的事件,如果队列事件中还有事件未处理,则返回true,如果该UI线程处于等待状态(SLEEP),则返回flase//在窗口没有销毁之前,显示对象处于休眠状态display.sleep();//销毁当前对象}display.dispose();}
}

下拉框组件(Combo)

  • Combo常见样式
    SWT.NONE 默认
    SWT.READ_ONLY 只读
    SWT.SIMPLE 无需单击下拉框,列表会一直显示

  • Combo下拉框常用方法
    add(String string) 在Combo上添加一项
    add(String string,int index) 在Combo的第index(从0开始)项后插入一项
    deselectAll() 使Combo组件中的当前选项为空
    removeAll() 将Combo中的所有选项清空
    setItems(String[] items) 将数组中的各项依次加入到Combo中
    select(int index) 将Combo的第index+1项设置为当前选择项

SWT学习|常用组件及参数相关推荐

  1. java swt designerpdf_eclipse学习笔记!(4) ----- SWT Designer 下 SWT常用组件

    一个button类的实例 基本的步骤和之前的是一样的,一个SWT的项目,然后在页面设置面板里添加button.双击button(直接在source里面添加了监听器的代码).下面是代码: publicc ...

  2. amazeui学习笔记--css(常用组件4)--关闭按钮Close

    amazeui学习笔记--css(常用组件4)--关闭按钮Close 一.总结 1.关闭按钮基本用法:关闭按钮样式,可以结合其他不同组件使用.对 <a> 或者 <button> ...

  3. amazeui学习笔记--css(常用组件1)--小徽章Badge

    amazeui学习笔记--css(常用组件1)--小徽章Badge 一.总结 1.am-badge:添加am-badge来声明小徽章对象 <span class="am-badge a ...

  4. amazeui学习笔记--css(常用组件5)--评论列表Comment

    amazeui学习笔记--css(常用组件5)--评论列表Comment 一.总结 1.am-comment:使用am-comment来声明评论对象,这个是放在article里面的,虽然article ...

  5. Swift学习笔记笔记(七) UIKit常用组件的使用

    一.实验目的: 1.掌握Cocoa程序的创建 2.掌握UILabel组件的使用 3.掌握UIButton组件的使用 4.掌握UITextField组件的使用 二.实验原理: 1.Cocoa应用程序框架 ...

  6. 开启Fluter基础之旅二-------Future再论、常用组件、Material Design风格组件学习

    Future再论: 这里在继续往下学习之前,先来看一下Dart语言关于Event-Queue和Microtask Queue需要注意的一个小点,这个在之前https://www.cnblogs.com ...

  7. amazeui学习笔记--css(常用组件6)--图标Icon

    amazeui学习笔记--css(常用组件6)--图标Icon 一.总结 1.关注用法即可:在 HTML 上添加添加 am-icon-{图标名称} class. <span class=&quo ...

  8. amazeui学习笔记--css(常用组件10)--导航条Topbar

    amazeui学习笔记--css(常用组件10)--导航条Topbar 一.总结 1. 导航条:就是页面最顶端的导航条:在容器上添加 .am-topbar class,然后按照示例组织所需内容.< ...

  9. Java多线程学习六:使用线程池比手动创建线程好在那里以及常用线程池参数的意义

    为什么要使用线程池 首先,回顾线程池的相关知识,在 Java 诞生之初是没有线程池的概念的,而是先有线程,随着线程数的不断增加,人们发现需要一个专门的类来管理它们,于是才诞生了线程池.没有线程池的时候 ...

最新文章

  1. Linus采访对Linux对git和对代码品味的理解
  2. 钉钉api 获取 accesstoken_低代码快速对接钉钉日程
  3. centos7 cacti php7,Centos7 cacti 使用笔记
  4. minigui显示时遇到的一个问题(暂时记下来)
  5. 微信小程序开发(一)
  6. python __init__ 构造函数
  7. leetcode374. 猜数字大小(二分法)
  8. PyTorch的hook及其在Grad-CAM中的应用
  9. matlab2014启动很慢,matlab启动慢的解决方法
  10. python中lstrip函数_python中strip(),lstrip(),rstrip()函数的使用讲解
  11. 只包含因子2 3 5的数 (思维和二分)
  12. 【Spring-tx】事务逻辑
  13. 二叉树的创建及遍历--java实现
  14. HTML+CSS登陆界面实例
  15. 计算机技术对英语要求高吗,学习计算机专业对英语要求高吗?
  16. openresty php 环境,从零搭建php环境-openresty
  17. 《 ERP高级计划》书的解读之零物料约束和能力约束逻辑(蔡颖)(转)
  18. 英国设计师发明不用手撑的雨伞
  19. 【R语言】5种探索数据分布的可视化技术
  20. java中什么叫引用

热门文章

  1. [C++11 多线程同步] --- 线程同步概述
  2. windows系统:oracle 10g的下载、安装、配置 (提供绝版安装文件下载)
  3. 测试sd卡读写速度与判断是否是扩容的假货
  4. 解决图片按顺序加载问题
  5. 关于DOCX XML
  6. 【FLink】Assigned key must not be null
  7. transition和transition的区别
  8. java 代码阅读工具_java-tracer
  9. 修改Centos7.6服务器时间
  10. 装饰模式之半透明装饰模式