|
http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=6497 [복사]
저좀 살려주세요ㅠㅠ
마우스로 클릭하는 위치에 원을 그리되 크기, 색깔, 방향을 랜덤으로하고
결정된 방향으로 움직이다가 화면을 벗어나면 소멸되도록 하는데
이때 원이 처음 그려지는 위치, 크기. 색깔 등을 파일에 저장하는
것입니다..
저는 하나의 패키지에 3가지 클래스로 나눠서 해봤는데 애니메이션과 스레드가 잘 이해가안가서요 ㅠㅠ
어디 물어 볼때도 없고 정말 막막합니다 도와주세요!!
제가 작성한것들입니다(어디가 문제인지 모르겠습니다...)
---메인클래스----
package Thread;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
public class ThreadTest extends JFrame //메인 클래스 Runnable 임플리먼트함.
{
public ThreadTest() // Test생성자
{
this.setSize(800, 500);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.addMouseListener(new MouseAdapter()//마우스 리스너
{
public void mouseClicked(MouseEvent e)//마우스를 클릭하면
{
trd t = new trd(e.getPoint(),(int) (Math.random() * 8));//스레드 생성
t.start();//스레드 시작
}
});
}
public static void main(String args[])
{
new ThreadTest();
}
}
-----스레드 클래스 ------
package Thread;
import java.awt.Point;
public class trd extends Thread
{
public int direction1;
public trd(Point point, int y)
{
// TODO Auto-generated constructor stub
circle c = new circle(point,y);
direction1=y;
}
public void run()
{
while (true)
{
try
{
Thread.sleep(30);//딜레이주기
}
catch(InterruptedException ex)
{
ex.printStackTrace();
}
}
}
public int direction;//원이 움직일 방향
public void move(int x,int y) // 방향 지정
{
switch (direction1)//정해진 방향에 따라 움직임
{
case 0:
x--;
break;
case 1:
x++;
break;
case 2:
y--;
break;
case 3:
y++;
break;
}
}
}
-----circle 클래스------
package Thread;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Point;
class circle//한개의 원을 나타내는 클래스
{
public int w;//원의 위치
public int h;//원의 위치
public int size=(int)(Math.random()*100);//원의 크기
public int r = (int)(Math.random()*256); //원의 색 r,g,b 랜덤값
public int g = (int)(Math.random()*256);
public int b = (int)(Math.random()*256);
public circle(Point point, int y)
{
// TODO Auto-generated constructor stub
w=point.x;
h=point.y;
}
public void draw(Graphics gp)//위치에 원그리기
{
gp.setColor(new Color(r,g,b));
gp.fillOval(w - (size / 2), h - (size / 2), size, size);
}
}
|
Hit : 6311 Date : 2014/12/05 09:57
|