您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页swt5

swt5

来源:意榕旅游网
姓名:彭蓉 学号:20091183068 班级:计科0902

SWT上机五

1. 利用鼠标监听器监听鼠标双击事件。当在文本框中双击鼠标时,显示“文本框中鼠标双击事件发生!”。如图所示:

代码:

package pr;

import org.eclipse.swt.SWT; import org.eclipse.swt.events.*; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.*; public class SJ5_1 {

Display d; Shell s; public SJ5_1(){

d = new Display(); s = new Shell(d);

s.setSize(250,250);

s.setImage(new Image(d,\"c:\\\\a.jpg\")); s.setText(\"SWI... \");

final Text t = new Text(s,SWT.MULTI|SWT.WRAP|SWT.BORDER); t.setBounds(30,30,100,80); s.pack(); s.open();

//添加鼠标监听器

t.addMouseListener(new MouseAdapter(){

public void mouseDoubleClick(MouseEvent e) {//如果鼠标双击

} }

}

t.setText(\"文本框中鼠标双击事件发生!\");//将会在文本框中显示

});

while(!s.isDisposed()){//如果主窗体没有关闭则一直循环 } }

public static void main(String[] args) {

SJ5_1 ss = new SJ5_1(); d.dispose();//销毁d

if(!d.readAndDispatch())//如果d不忙

d.sleep();//休眠

2. 利用键盘监听器监听键盘事件。当在文本框text1中输入信息,按回车键时将text1中的信息显示在text2中。运行结果如图所示:

代码:

package pr;

import org.eclipse.swt.SWT; import org.eclipse.swt.layout.*; import org.eclipse.swt.events.*; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.*; public class SJ5_2 {

Display d; Shell s; SJ5_2(){

d = new Display(); s = new Shell(d);

s.setSize(250,200); s.setText(\"Even...\");

s.setImage(new Image(d,\"c:\\\\a.jpg\"));

FormLayout fl=new FormLayout(); //创建表格布局对象formLayout

Label l1 = new Label(s,SWT.LEFT); l1.setText(\"text1:\");

FormData fd= new FormData();//创建formlayout的一个类formdata的实例

fl.marginHeight = 20; //设置shell的上下边距为20像素 fl.marginWidth =40; //设置shell的左右边距为10像素 fd.width=40; //Label l1的宽度为100像素 l1.setLayoutData(fd);//设置b1的布局数据为fd

Label l2 = new Label(s,SWT.LEFT); l2.setText(\"text2:\");

s.setLayout(fl); //设置shell的布局方式为表格布局

fd fd.height=50; //Label l1的高度为50像素

fd= new FormData();//创建formlayout的一个类formdata的实例fd fd.top = new FormAttachment(l1, 10,SWT.BOTTOM); fd.left = new FormAttachment(l1, 0,SWT.LEFT);

fd.width=40; //Label l2的宽度为100像素 l2.setLayoutData(fd);//设置b1的布局数据为fd

fd.height=50; //Label l2的高度为50像素

final Text t1 = new Text(s,SWT.MULTI|SWT.WRAP|SWT.BORDER ); fd= new FormData( );//创建FormData对象fd

fd.top = new FormAttachment(l1, -10,SWT.TOP); //text t1的顶部比label l1的顶部低10个像素

fd.left = new FormAttachment(l1, 0,SWT.RIGHT); fd.height=40; //设置text t1的高为30像素 fd.width=100;//设置text t1的高为100像素 t1.setLayoutData(fd);//设置b3的布局数据为fd

//text t1的左边框离label l1的右边框对齐

final Text t2 = new Text(s,SWT.MULTI|SWT.WRAP|SWT.BORDER); fd= new FormData();

fd.top = new FormAttachment(l2,-10,SWT.TOP); //text t2的top被设定为与label l2的top低10像素 fd.left = new FormAttachment(l2,0,SWT.RIGHT); //text t2的左边框离label l2的右边框对齐 fd.height=40;//设置text t2的高为30像素 fd.width=100;//设置text t2的宽为100像素 t2.setLayoutData(fd);

t1.addKeyListener(new KeyAdapter(){

/*public void keyPressed(KeyEvent e) { }

}*/

public void keyReleased(KeyEvent e) {

if(e.character==SWT.CR)//如果按下回车键 { }

t2.setText(t1.getText());//把t1的文本内容付给t2

});

s.pack();

s.open();//打开主窗体

while(!s.isDisposed()){//如果主窗体没有关闭则一直循环 }

if(!d.readAndDispatch())//如果d不忙

d.sleep();//休眠

} }

}

d.dispose();//销毁d

public static void main(String[] args) {

SJ5_2 ss = new SJ5_2();

3. 利用组件选择监听器,监听组件选择事件。当点击按钮时,弹出一个信息对话框,如图所示:

代码:

package pr;

import org.eclipse.swt.SWT; import org.eclipse.swt.events.*; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.*; public class SJ5_3 {

Display d; Shell s; SJ5_3(){

d = new Display(); s = new Shell(d);

} }

s.setSize(250,200); s.setText(\"组...\");

s.setImage(new Image(d,\"c:\\\\a.jpg\"));

final Button b = new Button(s,SWT.PUSH |SWT.BORDER); b.setBounds(20,20,90,40); b.setText(\"请点击我\");

b.addSelectionListener(new SelectionAdapter(){

MessageBox messageBox = new //创建对话框

messageBox.setText(\"组件选择事件\"); messageBox.setMessage(\"你好,SWT世界!\"); messageBox.open();

public void widgetSelected(SelectionEvent e){

MessageBox(s,SWT.ICON_INFORMATION|SWT.OK);

}});

s.pack();

s.open();//打开主窗体

while(!s.isDisposed()){//如果主窗体没有关闭则一直循环 } }

public static void main(String[] args) {

SJ5_3 ss = new SJ5_3(); d.dispose();//销毁d

if(!d.readAndDispatch())//如果d不忙

d.sleep();//休眠

实验总结:

此次实验主要是事件监听器的使用,上机题1中用到鼠标双击监听器,当在文本框中双击鼠标时,显示“文本框中鼠标双击事件发生,这个还比较容易实现。上机题2是利用键盘监听器监听键盘事件。当在文本框text1中输入信息,按回车键时将text1中的信息显示在text2中。在这个实验中,if里的条件判断语句至关重要,需要text1中的文本内容以Enter结尾,才能实现将text1中的信息显示在text2中。上机题3 可以模仿书本上的例17—1来做,是建立一个确认的对话框,总得来说这次的上机题不是很难,但是需要把书本上的知识融会贯通。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务