package Thread;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Random;
public class ThreadRectDraw extends Frame implements Runnable {
int x = 0;
int y = 20;
boolean xOrient, yOrient;
Random ran;
public ThreadRectDraw(String title) {
super(title);
ran = new Random();
setSize(300, 300);
setVisible(true);
addWindowListener(new WindowAdapter() {
public void windowClostin(WindowEvent e) {
System.exit(0);
}
});
}
public void paint(Graphics gr) {
Dimension d = this.getSize();
if (xOrient) {
x--;
if (x < 0) {
x = 0;
xOrient = false;
}
} else {
x++;
if (x >= d.width - 20) {
x = d.width - 20;
xOrient = true;
}
}
if (yOrient) {
y--;
if (y < 0) {
y = 0;
yOrient = false;
}
} else {
y++;
if (y >= d.height - 20) {
y = d.height - 20;
yOrient = true;
}
}
int r = ran.nextInt(255);
int g = ran.nextInt(255);
int b = ran.nextInt(255);
gr.setColor(new Color(r, g, b));
gr.drawRect(x, y, 20, 20);
}
public void update(Graphics g) {
paint(g);
}
@Override
public void run() {
while (true) {
repaint();
try {
Thread.sleep(5);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
ThreadRectDraw thread = new ThreadRectDraw("ThreadRect");
Thread task = new Thread(thread);
task.start();
}
}
'JAVA' 카테고리의 다른 글
[JAVA] == 와 equals의 차이점 (0) | 2021.03.11 |
---|---|
[JAVA] Call By Value / Call By Reference (0) | 2021.03.11 |
[JAVA] 쓰레드(Thread) -2 (0) | 2020.10.03 |
[JAVA] 쓰레드(Thread) -1 (0) | 2020.10.03 |
[JAVA] IO (FileInputStream) (3) (0) | 2020.10.01 |