<!--[if !supportLists]-->1.
<!--[endif]-->关于Swing的后台长时操作
在Swing UI当中,如果一个后台操作特别耗时,会导致GUI界面暂时无法响应的情况出现。为了解决这样的问题,引用SwingWorker类来完成后台耗时操作。
其程序框架大致如下:
SwingWorker worker = new SwingWorker<YourReturnType, YourInterType>() {
@Override
protected YourReturnType doInBackground() throws Exception {
//此处进行耗时操作
...
//可以设定一个判定,如果程序执行没有结束,那么执行中间操作
while(...){
...
publish(new YourInterType());//在这之后将调用Process进行处理
}
return ...;
}
@Override
public void Process(List<YourInterType){
//进行中间结果的处理,如设定进程条的值等
...
}
@Override
public void done() {
try {
YourReturnType y = get();
...//进行需要的处理,如GUI界面的响应等
} catch (Exception ex) {
ex.printStackTrace();
}
}
};
worker.execute();
如:
SwingWorker worker = new SwingWorker<Boolean, Void>() {
@Override
protected Boolean doInBackground() throws Exception {
Database db = new Database(eName.getText(), cName.getText());
return new CreateImpl(db).createDatabase();
}
@Override
public void done() {
try {
String mess = "操作失败!";
b = get();
if (b) {
doClose(RET_OK);
mess = "恭喜,操作成功!";
}
com.mess.setText(mess);
frame.setDone();
frame.dispose();
com.setVisible(true);
} catch (Exception ex) {
ex.printStackTrace();
}
}
};
worker.execute();
SwingWorker会将耗时操作放在后台进行。用户主要要使用的是两个方法,一是doInBakcground,一是done。其中doInBackground调用耗时操作,而done处理当操作完成之后的响应。
SwingWorker第一个参数指定的是doInBackground返回的类型,而第二个参数指定的是中间处理结果的类型。在这里不用对其中间结果进行处理,因此将第二个参数指定成Void。
其中,为了使得Worker在done中能够访问用户数据,应该将用户数据申明成主类的成员变量。
分享到:
相关推荐
这是基于Swing的程序实例,主要功能是文件的操作,即按字节合并文件,可以帮助理解Java流与文件的操作。
基于EJB的网上书店,与SWING后台,包括代码+可执行文件+数据库设计 数据库为MYSQL 实现功能包括添加图书,购买图书,下订单,用户管理,退订单等。
使用Java Swing界面实现数据库基本操作,使用Java Swing界面实现数据库基本操作
SWing的键盘事件处理。
Java教程+Swing管理后台教程
JAVA中的Swing的JTree操作的宝典, 对树节点的增 删 改 查
Java Swing界面实现数据库基本操作 Java Swing界面实现数据库基本操作 Java Swing界面实现数据库基本操作 Java Swing界面实现数据库基本操作
swing计算器 swing计算器swing计算器 swing计算器swing计算器 swing计算器swing计算器 swing计算器swing计算器 swing计算器 简易计算器
swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3...
swing 教程swing 教程swing 教程swing 教程swing 教程swing 教程swing 教程swing 教程swing 教程
java 基础。数据结构。网络编程。线程。异常处理。jdbc数据库操作。swing控件开发大全
主要为大家详细介绍了JavaSwing后台播放音乐mp3,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Java+Swing可视化图像处理软件(高分期末大作业)已获导师指导并通过的95分的高分期末大作业项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 该系统功能完善、界面美观、操作简单、功能...
Java初学者入门项目。模拟了银行前后台操作,前台面向用户为ATM,后台面向管理员增删改查。使用mvc设计构架,包含数据库三张表的操作。 利用swing工具完成界面操作。 需添加jar包vs4e swing,sqlite
javaswing图形处理小程序实例+源码
文章https://my.oschina.net/penngo/blog/5458941,附件
分管理员、教师、学生三组权限控制权限控制 管理员完成课程管理、管理通知、设置选课时间、管理学生、管理教师、管理教室预约情况等功能 教师端完成学生成绩管理(保存成绩与提交成绩,提交后学生才能看到,可分多次...
Swing插件,swing,java-swing swing-plugin下载
java swing漂亮界面 超酷 javaswing教程
swing针对数据库操作的一个例子.提供给入门的朋友参考