-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRunnableDemo.java
More file actions
69 lines (53 loc) · 1.33 KB
/
RunnableDemo.java
File metadata and controls
69 lines (53 loc) · 1.33 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
59
60
61
62
63
64
65
66
67
68
69
// RunnableDemo.java
public class RunnableDemo extends java.applet.Applet implements Runnable
{
private Thread t;
public void run ()
{
while (t == Thread.currentThread ())
{
int width = rnd (30);
if (width < 2)
width += 2;
int height = rnd (10);
if (height < 2)
height += 2;
draw (width, height);
}
}
public void start ()
{
if (t == null)
{
t = new Thread (this);
t.start ();
}
}
public void stop ()
{
if (t != null)
t = null;
}
private void draw (int width, int height)
{
for (int c = 0; c < width; c++)
System.out.print ('*');
System.out.print ('\n');
for (int r = 0; r < height - 2; r++)
{
System.out.print ('*');
for (int c = 0; c < width - 2; c++)
System.out.print (' ');
System.out.print ('*');
System.out.print ('\n');
}
for (int c = 0; c < width; c++)
System.out.print ('*');
System.out.print ('\n');
}
private int rnd (int limit)
{
// Return a random number x in the range 0 <= x < limit.
return (int) (Math.random () * limit);
}
}