1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
importBtn.addActionListener(newActionListener() {
@Override
publicvoid actionPerformed(ActionEvent e) {
try
{
lb.setText(
"1.检查数据合法性..."
);
Thread.sleep(
3000
);
//模仿检测数据合法性
lb.setText(
"2.正在导入数据..."
);
Thread.sleep(
4000
);
//模仿导入数据
lb.setText(
"3.导入成功!"
);
}
catch
(InterruptedException e1) {
e1.printStackTrace();
}
}
});
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
package
test;
import
java.awt.FlowLayout;
import
java.awt.event.ActionEvent;
import
java.awt.event.ActionListener;
import
javax.swing.JButton;
import
javax.swing.JFrame;
import
javax.swing.JProgressBar;
import
javax.swing.JTextField;
import
javax.swing.SwingUtilities;
public
class
SwingThreadTest2
extends
JFrame {
private
static
final
long
serialVersionUID = 1L;
private
static
final
String STR =
"Completed : "
;
private
JProgressBar progressBar =
new
JProgressBar();
private
JTextField text =
new
JTextField(
10
);
private
JButton start =
new
JButton(
"Start"
);
private
JButton end =
new
JButton(
"End"
);
private
boolean
flag =
false
;
private
int
count =
0
;
private
GoThread t =
null
;
private
Runnable run =
null
;
// 更新组件的线程
public
SwingThreadTest2() {
this
.setLayout(
new
FlowLayout());
add(progressBar);
text.setEditable(
false
);
add(text);
add(start);
add(end);
start.addActionListener(
new
Start());
end.addActionListener(
new
End());
run =
new
Runnable() {
// 实例化更新组件的线程
public
void
run() {
progressBar.setValue(count);
text.setText(STR + String.valueOf(count) +
"%"
);
}
};
}
private
class
Start
implements
ActionListener {
public
void
actionPerformed(ActionEvent e) {
flag =
true
;
if
(t ==
null
) {
t =
new
GoThread();
t.start();
}
}
}
class
GoThread
extends
Thread {
public
void
run() {
while
(count <
100
) {
try
{
Thread.sleep(
100
);
}
catch
(InterruptedException e) {
e.printStackTrace();
}
if
(flag) {
count++;
SwingUtilities.invokeLater(run);
// 将对象排到事件派发线程的队列中
}
}
}
}
private
class
End
implements
ActionListener {
public
void
actionPerformed(ActionEvent e) {
flag =
false
;
}
}
public
static
void
main(String[] args) {
SwingUtilities.invokeLater(
new
Runnable() {
public
void
run() {
SwingThreadTest2 fg =
new
SwingThreadTest2();
fg.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fg.setSize(
300
,
100
);
fg.setVisible(
true
);
}
});
}
}
|