-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBounceFrame.java
More file actions
58 lines (45 loc) · 1.21 KB
/
BounceFrame.java
File metadata and controls
58 lines (45 loc) · 1.21 KB
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
package Chapter14Thread.bounceThread;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import Chapter14Thread.bounce.Ball;
import Chapter14Thread.bounce.BallComponent;
public class BounceFrame extends JFrame{
private BallComponent comp;
public BounceFrame(){
comp=new BallComponent();
add(comp, BorderLayout.CENTER);
JPanel buttonPanel=new JPanel();
//添加按钮及监听
addButton(buttonPanel,"start",new ActionListener() {
public void actionPerformed(ActionEvent e) {
addBall();
}
});
addButton(buttonPanel, "stop",new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
add(buttonPanel, BorderLayout.SOUTH);
pack();
}
private void addButton(Container c, String title, ActionListener actionListener) {
JButton button=new JButton(title);
c.add(button);
button.addActionListener(actionListener);
}
public void addBall(){
Ball b=new Ball();
comp.add(b);
Runnable r=new BallRunnable(b, comp);
//实例化线程
Thread t=new Thread(r);
//开启线程
t.start();
}
}