当前位置: 编程技术>java/j2ee
Java SwingWorkder使用实例
来源: 互联网 发布时间:2014-11-05
本文导语: 首先考虑的就是Swing内部的 SwingWorkder对象,但是网上现成的例子不好找,主要参照了网上的资料,自己整理了一个。 注意:SwingWorkder对象只能执行一次,不能重复执行!例如点击开始,结束后,就不能再次开始了。 代码如下:i...
首先考虑的就是Swing内部的 SwingWorkder对象,但是网上现成的例子不好找,主要参照了网上的资料,自己整理了一个。
注意:SwingWorkder对象只能执行一次,不能重复执行!例如点击开始,结束后,就不能再次开始了。
代码如下:
import java.awt.BorderLayout;
import java.awt.event.*;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.List;
import java.util.concurrent.ExecutionException;
import javax.swing.*;
import javax.swing.SwingWorker;
public class SwingWorkerSample {
public static void main(String[] args) {
// 外观定义
try {
UIManager
.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
} catch (Exception ex) {
}
// 窗体
JFrame f = new JFrame("SwingWorker Sample");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 表示区
final JTextArea taOutput = new JTextArea(15, 30);
JScrollPane sp = new JScrollPane(taOutput);
f.add(sp);
// 底部进度条
final JProgressBar progressBar = new JProgressBar();
f.add(BorderLayout.SOUTH, progressBar);
// 开始按钮
JButton b = new JButton("开始");
f.add(BorderLayout.NORTH, b);
// 结束按钮
JButton b2 = new JButton("结束");
f.add(BorderLayout.AFTER_LINE_ENDS, b2);
// SwingWorker类
final SwingWorker sw = new SwingWorker() {
/** 执行操作 */
@Override
protected Integer doInBackground() throws Exception {
int sum = 0;
if (!this.isCancelled()) {
for (int i = 1; i