衡阳师范学院网络编程(Java)课程设计报告题目模拟计算器_ 学生姓名文润___________ 学号14190233 _______ 专业班级计算机科学与技术2班指导教师焦铬完成时间2016年12月目录第一章课程设计简介 (1)1.1 课程设计目的 (1)1.2 课程设计内容及要求 (1)第二章概要设计 (2)2.1 课程设计思路 (2)2.2 系统功能模块图 (2)第三章详细设计 (3)3.1 界面设计 (3)3.2 按键监听器 (3)3.3 计算模块 (4)3.4 显示当前时间 (5)3.5 输出按键声音 (7)第四章运行环境 (8)第五章界面展示及测试 (9)5.1 界面展示 (9)5.2测试 (9)第六章课程设计心得 (9)第七章参考文献 (10)第八章附录:源程序 (12)第一章课程设计简介1.1 课程设计目的计算机的发展突飞猛进,人们使用计算机的目的各不相同,但是我们很容易发现,关于计算的问题生活中随处可见,于是计算器也成为了我们学习和生活中必不可少的有力工具。
为了减轻人们日益繁琐的工作压力和负担,实现高效统计和运算,使用计算器上势在必行,可以大大减轻会计以及财务部门统计账目的压力。
于是计算器应运而生。
1.2 课程设计内容及要求设计实现一个模拟计算器,界面参见图2-1-1,能进行整数的加、减、乘、除等四则运算。
图2-1-1第二章 概要设计2.1 课程设计思路此次课程设计实践,利用java 面向对象程序设计和SWT 技术针对该程序显示GUI 用户界面,能实现四则运算,并用图形界面实现。
够培养我们严谨务实的工作态度以及提高我们分析问题和解决问题的能力,也对于巩固和加深对面向对象程序设计的基本概念、基本理论和实现技术的理解起到了一定的意义。
2.2 系统功能模块图第三章详细设计3.1 界面设计本程序运用SWT插件进行图形界面设计,如图3-1-1所示,上方为数据的显示框,中间为按键区,下方为时间显示区。
图3-1-13.2 按键监听器程序中为每个按键添加了一个监听器,用来监听按键的响应,以便输入数据进行计算。
例如为“1”按键添加监听器button_6.addSelectionListener(new SelectionAdapter() {public void widgetSelected(SelectionEvent e) {}});后面的按键与此类似。
3.3 计算模块程序中,将第一个数存入变量num1中,输入运算符之后,将第二个数存入变量num2中,然后进行计算并将结果存入变量result 中,然后输出在text中。
具体运算代码如下:double result ;num2 =Double.parseDouble ( text.getText() );switch ( op) {case op_ADD:result = num1+num2;text.setText( result +"")if (text.getText().endsWith("0"))text.setText(text.getText().substring(0,text.getText().length()-2));break;case op_SUB:result = num1 - num2;text.setText( result +"");if (text.getText().endsWith("0"))text.setText(text.getText().substring(0,text.getText().length()-2));break;case op_MUL:result = num1 * num2;text.setText( result +"");if (text.getText().endsWith("0"))text.setText(text.getText().substring(0,text.getText().length()-2));break;case op_DIV:result = num1 / num2;text.setText( result +"");if (text.getText().endsWith("0"))text.setText(text.getText().substring(0,text.getText().length()-2));break;default:break;}3.4 显示当前时间使用Date类导入时间,时间精确到毫秒,使用DateFormat 可帮助进行格式化并解析任何语言环境的日期。
并使用SimpleDateFormat进行时间格式转换,把时间格式转换为“年月日时:分:秒”的格式;Date d=new Date();DateFormat df=new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss");为了能实现时间的动态显示,引入线程,利用死循环和线程,让线程在循环中每sleep1秒,重新获取下系统时间从而实现动态显示时间。
Thread t=new Thread(){public void run(){while(true){try{Thread.sleep(1000);}catch (InterruptedException e){e.printStackTrace();}final Date d=new Date();final DateFormat df=new SimpleDateFormat("yyyy 年MM 月dd 日HH:mm:ss");Display.getDefault().asyncExec(new Runnable(){public void run(){text_1.setText(df.format(d));}});}}};t.setDaemon(true);t.start();3.5 输出按键声音使用File类将给定路径名字符串转换为抽象路径名来创建一个新File 实例。
使用AudioInputStream类从外部音频文件、流或URL 获得音频输入流。
使用AudioSystem 类充当取样音频系统资源的入口点。
Clip 接口表示特殊种类的数据行,该数据行的音频数据可以在回放前加载,而不是实时流出。
LineUnavailableException 是指示某一行因为不可用而无法打开的异常。
此情况通常在请求的行已由另一个应用程序使用时发生。
UnsupportedAudioFileException 是指示因为文件没有包含可识别文件类型和格式的有效数据而致使操作失败的异常。
代码实现:File wavFile = new File("C:\\jisuan\\8.wav");AudioInputStream ais = null;try {ais = AudioSystem.getAudioInputStream(wavFile);} catch (UnsupportedAudioFileException | IOException e1) {e1.printStackTrace();}Clip clip = null;try {clip = AudioSystem.getClip();} catch (LineUnavailableException e1) {e1.printStackTrace();}try {clip.open(ais);} catch (LineUnavailableException | IOException e1) {e1.printStackTrace();}clip.start();第四章运行环境操作系统:Windows操作系统开发软件:Eclipse软件第五章界面展示及测试5.1 界面展示界面采用上中下布局,上方为数据的显示框,中间为按键区,下方为时间显示区。
如图5-1-1所示。
图5-1-15.2测试本计算器基本实现其功能,能进行加减乘除运算,正确显示时间,按键能输出声音,达到设计要求。
第六章课程设计心得此次课程设计让我更了解熟悉了Java中的图形用户界面和它的编程方式。
在完成课题的过程中也不断充实了自己,学习到了很多以前没有学习到的知识,收获很大。
最大的收获是在完成过程中培养的解决问题的能力,在做项目时必然会遇到困难,会有不会的东西,重要的不是现在会不会,而是遇到问题知道如何找到解决的途径。
还使我对所学知识能够融会贯通,又不断丰富了新知识。
Java计算器设计使得我们对所学的专业课有了更为深刻的认识,使得知识得到了巩固和提高。
第七章参考文献[1]梁勇.Java语言程序设计(基础篇).北京:机械工业出版社,2016[2]李芝兴,杨瑞龙.Java程序设计之网络编程(第二版).北京:清华大学出版社,2016[3]耿祥义.JAVA大学实用教程.北京:清华大学出版社,2015[4]王晓东.算法设计与分析. 北京:清华大学出版社,2015第八章附录:源程序package jisuanqi2;import org.eclipse.swt.widgets.Display;import org.eclipse.swt.widgets.Shell;import yout.GridLayout;import org.eclipse.swt.widgets.Button;import java.io.File;import java.io.IOException;import java.io.InputStream;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Date;import javax.sound.sampled.AudioInputStream;import javax.sound.sampled.AudioSystem;import javax.sound.sampled.Clip;import javax.sound.sampled.LineUnavailableException; import javax.sound.sampled.UnsupportedAudioFileException;import org.eclipse.swt.SWT;import yout.GridData;import org.eclipse.swt.widgets.Text;import org.eclipse.swt.events.SelectionAdapter;import org.eclipse.swt.events.SelectionEvent;import org.eclipse.wb.swt.SWTResourceManager;import bel;public class jisaun2 {protected Shell shell;private Text text;private int op = 0;private double num1;private double num2;private static final int op_ADD =1;private static final int op_SUB =2;private static final int op_MUL =3;private static final int op_DIV =4;private Text text_1;public static void main(String[] args) { try {jisaun2 window = new jisaun2();window.open();} catch (Exception e) {e.printStackTrace();}}public void open() {Display display = Display.getDefault();createContents();shell.open();yout();while (!shell.isDisposed()) {if (!display.readAndDispatch()) {display.sleep();}}}protected void createContents() {shell = new Shell();shell.setImage(SWTResourceManager.getImage("C:\\jisuan\\jisuanqi.jpg")); shell.setSize(251, 324);shell.setText("\u6A21\u62DF\u8BA1\u7B97\u5668");shell.setLayout(new GridLayout(4, false));//设置显示文本框text = new Text(shell, SWT.BORDER | SWT.RIGHT);GridData gd_text = new GridData(SWT.FILL, SWT.FILL, true, false, 4, 1);gd_text.heightHint = 36;gd_text.widthHint = 424;text.setLayoutData(gd_text);//设置按键“7”,并为按键添加监听器Button button = new Button(shell, SWT.NONE);button.setFont(SWTResourceManager.getFont("微软雅黑", 14, SWT.NORMAL)); button.addSelectionListener(new SelectionAdapter() {public void widgetSelected(SelectionEvent e) {text.setText(text.getText() + "7");if (text.getText().startsWith("0")){text.setText ( text.getText().substring ( 1, text.getText().length( ) ) ) ;}File wavFile = new File("C:\\jisuan\\7.wav");//音乐文件所在的目录AudioInputStream ais = null;try {ais = AudioSystem.getAudioInputStream(wavFile);} catch (UnsupportedAudioFileException | IOException e1) {e1.printStackTrace();}Clip clip = null;try {clip = AudioSystem.getClip();} catch (LineUnavailableException e1) {e1.printStackTrace();}try {clip.open(ais);} catch (LineUnavailableException | IOException e1) {e1.printStackTrace();}clip.start();//播放音乐文件}});GridData gd_button = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1); gd_button.heightHint = 37;gd_button.widthHint = 51;button.setLayoutData(gd_button);button.setText("7");//设置按键“8”,并为按键添加监听器Button button_1 = new Button(shell, SWT.NONE);button_1.setFont(SWTResourceManager.getFont("微软雅黑", 14,SWT.NORMAL));button_1.addSelectionListener(new SelectionAdapter() {public void widgetSelected(SelectionEvent e) {text.setText(text.getText() + "8");if (text.getText().startsWith("0")){text.setText ( text.getText().substring ( 1, text.getText().length( ) ) ) ;}File wavFile = new File("C:\\jisuan\\8.wav");//音乐文件所在的目录AudioInputStream ais = null;try {ais = AudioSystem.getAudioInputStream(wavFile);} catch (UnsupportedAudioFileException | IOException e1) {e1.printStackTrace();}Clip clip = null;try {clip = AudioSystem.getClip();} catch (LineUnavailableException e1) {e1.printStackTrace();}try {clip.open(ais);} catch (LineUnavailableException | IOException e1) {e1.printStackTrace();}clip.start(); //播放音乐文件}});GridData gd_button_1 = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);gd_button_1.heightHint = 37;gd_button_1.widthHint = 51;button_1.setLayoutData(gd_button_1);button_1.setText("8");//设置按键“9”,并为按键添加监听器Button button_2 = new Button(shell, SWT.NONE);button_2.setFont(SWTResourceManager.getFont("微软雅黑", 14,SWT.NORMAL));GridData gd_button_2 = new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1);gd_button_2.heightHint = 37;gd_button_2.widthHint = 51;button_2.setLayoutData(gd_button_2);button_2.addSelectionListener(new SelectionAdapter() {public void widgetSelected(SelectionEvent e) {text.setText(text.getText() + "9");if (text.getText().startsWith("0")){text.setText ( text.getText().substring ( 1, text.getText().length( ) ) ) ;}File wavFile = new File("C:\\jisuan\\9.wav");//音乐文件所在的目录AudioInputStream ais = null;try {ais = AudioSystem.getAudioInputStream(wavFile);} catch (UnsupportedAudioFileException | IOException e1) {e1.printStackTrace();}Clip clip = null;try {clip = AudioSystem.getClip();} catch (LineUnavailableException e1) {e1.printStackTrace();}try {clip.open(ais);} catch (LineUnavailableException | IOException e1) {e1.printStackTrace();}clip.start(); //播放音乐文件}});button_2.setText("9");//设置按键“+”,并为按键添加监听器Button button_10 = new Button(shell, SWT.NONE);button_10.setFont(SWTResourceManager.getFont("微软雅黑", 14,SWT.NORMAL));GridData gd_button_10 = new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1);gd_button_10.widthHint = 46;gd_button_10.heightHint = 40;button_10.setLayoutData(gd_button_10);button_10.addSelectionListener(new SelectionAdapter() {public void widgetSelected(SelectionEvent e) {op = op_ADD;num1 =Double.parseDouble (text.getText() );text.setText("0");}});button_10.setText("+");//设置按键“4”,并为按键添加监听器Button button_3 = new Button(shell, SWT.NONE);button_3.setFont(SWTResourceManager.getFont("微软雅黑", 14,SWT.NORMAL));button_3.addSelectionListener(new SelectionAdapter() {public void widgetSelected(SelectionEvent e) {text.setText(text.getText() + "4");if (text.getText().startsWith("0")){text.setText ( text.getText().substring ( 1, text.getText().length( ) ) ) ;}File wavFile = new File("C:\\jisuan\\4.wav");//音乐文件所在的目录AudioInputStream ais = null;try {ais = AudioSystem.getAudioInputStream(wavFile);} catch (UnsupportedAudioFileException | IOException e1) {e1.printStackTrace();}Clip clip = null;try {clip = AudioSystem.getClip();} catch (LineUnavailableException e1) {e1.printStackTrace();}try {clip.open(ais);} catch (LineUnavailableException | IOException e1) {e1.printStackTrace();}clip.start(); //播放音乐文件}});GridData gd_button_3 = new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1);gd_button_3.heightHint = 37;gd_button_3.widthHint = 51;button_3.setLayoutData(gd_button_3);button_3.setText("4");//设置按键“5”,并为按键添加监听器Button button_4 = new Button(shell, SWT.NONE);button_4.setFont(SWTResourceManager.getFont("微软雅黑", 14,SWT.NORMAL));button_4.addSelectionListener(new SelectionAdapter() {public void widgetSelected(SelectionEvent e) {text.setText(text.getText() + "5");if (text.getText().startsWith("0")){text.setText ( text.getText().substring ( 1, text.getText().length( ) ) ) ;}File wavFile = new File("C:\\jisuan\\5.wav");//音乐文件所在的目录AudioInputStream ais = null;try {ais = AudioSystem.getAudioInputStream(wavFile);} catch (UnsupportedAudioFileException | IOException e1) {e1.printStackTrace();}Clip clip = null;try {clip = AudioSystem.getClip();} catch (LineUnavailableException e1) {e1.printStackTrace();}try {clip.open(ais);} catch (LineUnavailableException | IOException e1) {e1.printStackTrace();}clip.start(); //播放音乐文件}});GridData gd_button_4 = new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1); gd_button_4.heightHint = 33;button_4.setLayoutData(gd_button_4);button_4.setText("5");//设置按键“6”,并为按键添加监听器Button button_5 = new Button(shell, SWT.NONE);button_5.setFont(SWTResourceManager.getFont("微软雅黑", 14,SWT.NORMAL));button_5.addSelectionListener(new SelectionAdapter() {public void widgetSelected(SelectionEvent e) {text.setText(text.getText() + "6");if (text.getText().startsWith("0")){text.setText ( text.getText().substring ( 1, text.getText().length( ) ) ) ;}File wavFile = new File("C:\\jisuan\\6.wav");//音乐文件所在的目录AudioInputStream ais = null;try {ais = AudioSystem.getAudioInputStream(wavFile);} catch (UnsupportedAudioFileException | IOException e1) {e1.printStackTrace();}Clip clip = null;try {clip = AudioSystem.getClip();} catch (LineUnavailableException e1) {e1.printStackTrace();}try {clip.open(ais);} catch (LineUnavailableException | IOException e1) {e1.printStackTrace();}clip.start();//播放音乐文件}});GridData gd_button_5 = new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1);gd_button_5.heightHint = 35;button_5.setLayoutData(gd_button_5);button_5.setText("6");//设置按键“-”,并为按键添加监听器Button button_11 = new Button(shell, SWT.NONE);button_11.setFont(SWTResourceManager.getFont("微软雅黑", 14,SWT.NORMAL));button_11.addSelectionListener(new SelectionAdapter() {public void widgetSelected(SelectionEvent e) {op = op_SUB ;num1 =Double.parseDouble (text.getText() );text.setText("0");}});button_11.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1));button_11.setText("-");//设置按键“1”,并为按键添加监听器Button button_6 = new Button(shell, SWT.NONE);button_6.setFont(SWTResourceManager.getFont("微软雅黑", 14,SWT.NORMAL));button_6.addSelectionListener(new SelectionAdapter() {public void widgetSelected(SelectionEvent e) {text.setText (text.getText() + "1");if (text.getText().startsWith("0")){text.setText ( text.getText().substring (1, text.getText().length( ) ) ) ;}else if(text.getText().startsWith("0.")){text.setText ( text.getText() +"1") ;}File wavFile = new File("C:\\jisuan\\1.wav");//音乐文件所在的目录AudioInputStream ais = null;try {ais = AudioSystem.getAudioInputStream(wavFile);} catch (UnsupportedAudioFileException | IOException e1) {e1.printStackTrace();}Clip clip = null;try {clip = AudioSystem.getClip();} catch (LineUnavailableException e1) {e1.printStackTrace();}try {clip.open(ais);} catch (LineUnavailableException | IOException e1) {e1.printStackTrace();}clip.start();//播放音乐文件}});GridData gd_button_6 = new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1);gd_button_6.heightHint = 37;gd_button_6.widthHint = 51;button_6.setLayoutData(gd_button_6);button_6.setText("1");//设置按键“2”,并为按键添加监听器Button button_7 = new Button(shell, SWT.NONE);button_7.setFont(SWTResourceManager.getFont("微软雅黑", 14,SWT.NORMAL));button_7.addSelectionListener(new SelectionAdapter() {public void widgetSelected(SelectionEvent e) {text.setText(text.getText() + "2");if (text.getText().startsWith("0")){text.setText ( text.getText().substring ( 1, text.getText().length( ) ) ) ;}File wavFile = new File("C:\\jisuan\\2.wav");//音乐文件所在的目录AudioInputStream ais = null;try {ais = AudioSystem.getAudioInputStream(wavFile);} catch (UnsupportedAudioFileException | IOException e1) {e1.printStackTrace();}Clip clip = null;try {clip = AudioSystem.getClip();} catch (LineUnavailableException e1) {e1.printStackTrace();}try {clip.open(ais);} catch (LineUnavailableException | IOException e1) {e1.printStackTrace();}clip.start();//播放音乐文件}});button_7.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1)); button_7.setText("2");//设置按键“2”,并为按键添加监听器Button button_8 = new Button(shell, SWT.NONE);button_8.setFont(SWTResourceManager.getFont("微软雅黑", 14,SWT.NORMAL));button_8.addSelectionListener(new SelectionAdapter() {public void widgetSelected(SelectionEvent e) {text.setText(text.getText() + "3");if (text.getText().startsWith("0")){text.setText ( text.getText().substring ( 1, text.getText().length( ) ) ) ;}File wavFile = new File("C:\\jisuan\\3.wav");//音乐文件所在的目录AudioInputStream ais = null;try {ais = AudioSystem.getAudioInputStream(wavFile);} catch (UnsupportedAudioFileException | IOException e1) {e1.printStackTrace();}Clip clip = null;try {clip = AudioSystem.getClip();} catch (LineUnavailableException e1) {e1.printStackTrace();}try {clip.open(ais);} catch (LineUnavailableException | IOException e1) {e1.printStackTrace();}clip.start(); //播放音乐文件}});button_8.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1));button_8.setText("3");//设置按键“x”,并为按键添加监听器Button button_12 = new Button(shell, SWT.NONE);button_12.setFont(SWTResourceManager.getFont("微软雅黑", 14,SWT.NORMAL));button_12.addSelectionListener(new SelectionAdapter() {public void widgetSelected(SelectionEvent e) {op = op_MUL;num1 =Double.parseDouble (text.getText() );text.setText("0");}});button_12.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1));button_12.setText("\u00D7");//设置按键“C”,并为按键添加监听器Button btnC = new Button(shell, SWT.NONE);btnC.setFont(SWTResourceManager.getFont("微软雅黑", 14, SWT.NORMAL));btnC.addSelectionListener(new SelectionAdapter() {public void widgetSelected(SelectionEvent e) {text.setText("0");}});btnC.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1));btnC.setText("C");//设置按键“0”,并为按键添加监听器Button button_9 = new Button(shell, SWT.NONE);button_9.setFont(SWTResourceManager.getFont("微软雅黑", 14,SWT.NORMAL));button_9.addSelectionListener(new SelectionAdapter() {public void widgetSelected(SelectionEvent e) {text.setText(text.getText() + "0");if (text.getText().startsWith("0")){text.setText ( text.getText().substring ( 1, text.getText().length( ) ) ) ;}File wavFile = new File("C:\\jisuan\\0.wav");//音乐文件所在的目录AudioInputStream ais = null;try {ais = AudioSystem.getAudioInputStream(wavFile);} catch (UnsupportedAudioFileException | IOException e1) {e1.printStackTrace();}Clip clip = null;try {clip = AudioSystem.getClip();} catch (LineUnavailableException e1) {e1.printStackTrace();}try {clip.open(ais);} catch (LineUnavailableException | IOException e1) {e1.printStackTrace();}clip.start(); //播放音乐文件}});GridData gd_button_9 = new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1); gd_button_9.heightHint = 37;gd_button_9.widthHint = 51;button_9.setLayoutData(gd_button_9);button_9.setText("0");//设置按键“.”,并为按键添加监听器Button button_14 = new Button(shell, SWT.NONE);button_14.setFont(SWTResourceManager.getFont("微软雅黑", 14,SWT.NORMAL));button_14.addSelectionListener(new SelectionAdapter() {public void widgetSelected(SelectionEvent e) {text.setText (text.getText() + ".");}});button_14.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1));button_14.setText(".");//设置按键“÷”,并为按键添加监听器Button button_13 = new Button(shell, SWT.NONE);button_13.setFont(SWTResourceManager.getFont("微软雅黑", 14,SWT.NORMAL));button_13.addSelectionListener(new SelectionAdapter() {public void widgetSelected(SelectionEvent e) {op = op_DIV;num1 =Double.parseDouble (text.getText() );num1 = Integer.parseInt( text.getText() );text.setText("0");}});button_13.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1));button_13.setText("\u00F7");//设置按键“=”,并为按键添加监听器Button button_15 = new Button(shell, SWT.NONE);button_15.setFont(SWTResourceManager.getFont("微软雅黑", 16,SWT.NORMAL));button_15.addSelectionListener(new SelectionAdapter() {public void widgetSelected(SelectionEvent e) {double result ;num2 =Double.parseDouble ( text.getText() );//获取输入的第二个数switch ( op) {case op_ADD://进行加法运算result = num1+num2;text.setText( result +"");if (text.getText().endsWith("0"))text.setText(text.getText().substring(0,text.getText().length()-2));break;case op_SUB://进行减法运算result = num1 - num2;text.setText( result +"");if (text.getText().endsWith("0"))text.setText(text.getText().substring(0,text.getText().length()-2));break;case op_MUL://进行乘法运算result = num1 * num2;text.setText( result +"");if (text.getText().endsWith("0"))text.setText(text.getText().substring(0,text.getText().length()-2));break;case op_DIV://进行除法运算result = num1 / num2;text.setText( result +"");if (text.getText().endsWith("0"))text.setText(text.getText().substring(0,text.getText().length()-2));break;default:break;}}});GridData gd_button_15 = new GridData(SWT.FILL, SWT.FILL, false, false, 4, 1);gd_button_15.heightHint = 34;button_15.setLayoutData(gd_button_15);button_15.setText("=");text_1 = new Text(shell, SWT.BORDER | SWT.READ_ONLY);text_1.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 4, 1));//获取时间并显示在文本框中Date d=new Date();DateFormat df=new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss");//转换格式text_1.setText(df.format(d));Thread t=new Thread(){//循环显示时间public void run(){while(true){try{Thread.sleep(1000);//暂停,每一秒输出一次}catch (InterruptedException e){e.printStackTrace();}.final Date d=new Date();final DateFormat df=new SimpleDateFormat("yyyy 年MM 月dd 日HH:mm:ss");Display.getDefault().asyncExec(new Runnable(){public void run(){text_1.setText(df.format(d));}});}}};t.setDaemon(true);t.start();}}。