FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
Java/CoreJava/v1ch14/bounceThread/BounceThread.java at master · mthli/Java · GitHub
mthli
/
Java
Public
Notifications
You must be signed in to change notification settings
Fork
78
Star
137
Code
Issues
2
Pull requests
1
Actions
Projects
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
Java
/
CoreJava
/
v1ch14
/
bounceThread
/
BounceThread.java
Copy path
More file actions
More file actions
Latest commit
History
History
History
127 lines (116 loc) · 2.79 KB
Breadcrumbs
Java
/
CoreJava
/
v1ch14
/
bounceThread
/
BounceThread.java
Copy path
File metadata and controls
127 lines (116 loc) · 2.79 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
package
bounceThread
;
import
java
.
awt
.*;
import
java
.
awt
.
event
.*;
import
javax
.
swing
.*;
/**
* Shows animated bouncing balls.
* @version 1.33 2007-05-17
* @author Cay Horstmann
*/
public
class
BounceThread
{
public
static
void
main
(
String
[]
args
)
{
EventQueue
.
invokeLater
(
new
Runnable
()
{
public
void
run
()
{
JFrame
frame
=
new
BounceFrame
();
frame
.
setTitle
(
"BounceThread"
);
frame
.
setDefaultCloseOperation
(
JFrame
.
EXIT_ON_CLOSE
);
frame
.
setVisible
(
true
);
}
});
}
}
/**
* A runnable that animates a bouncing ball.
*/
class
BallRunnable
implements
Runnable
{
private
Ball
ball
;
private
Component
component
;
public
static
final
int
STEPS
=
1000
;
public
static
final
int
DELAY
=
5
;
/**
* Constructs the runnable.
* @param aBall the ball to bounce
* @param aComponent the component in which the ball bounces
*/
public
BallRunnable
(
Ball
aBall
,
Component
aComponent
)
{
ball
=
aBall
;
component
=
aComponent
;
}
public
void
run
()
{
try
{
for
(
int
i
=
1
;
i
<=
STEPS
;
i
++)
{
ball
.
move
(
component
.
getBounds
());
component
.
repaint
();
Thread
.
sleep
(
DELAY
);
}
}
catch
(
InterruptedException
e
)
{
}
}
}
/**
* The frame with panel and buttons.
*/
class
BounceFrame
extends
JFrame
{
private
BallComponent
comp
;
/**
* Constructs the frame with the component for showing the bouncing ball and Start and Close
* buttons
*/
public
BounceFrame
()
{
comp
=
new
BallComponent
();
add
(
comp
,
BorderLayout
.
CENTER
);
JPanel
buttonPanel
=
new
JPanel
();
addButton
(
buttonPanel
,
"Start"
,
new
ActionListener
()
{
public
void
actionPerformed
(
ActionEvent
event
)
{
addBall
();
}
});
addButton
(
buttonPanel
,
"Close"
,
new
ActionListener
()
{
public
void
actionPerformed
(
ActionEvent
event
)
{
System
.
exit
(
0
);
}
});
add
(
buttonPanel
,
BorderLayout
.
SOUTH
);
pack
();
}
/**
* Adds a button to a container.
* @param c the container
* @param title the button title
* @param listener the action listener for the button
*/
public
void
addButton
(
Container
c
,
String
title
,
ActionListener
listener
)
{
JButton
button
=
new
JButton
(
title
);
c
.
add
(
button
);
button
.
addActionListener
(
listener
);
}
/**
* Adds a bouncing ball to the canvas and starts a thread to make it bounce
*/
public
void
addBall
()
{
Ball
b
=
new
Ball
();
comp
.
add
(
b
);
Runnable
r
=
new
BallRunnable
(
b
,
comp
);
Thread
t
=
new
Thread
(
r
);
t
.
start
();
}
}
Back
|
FazBrowse Home
|
New Git URL