올해는 머신러닝이다.
자바 프리드로우 버전이다. 본문
요즘 며칠동안 공부중인 캔버스 프리드로우 버전입니다영..^^
1단계 : 그냥 캔버스에 간단한 마우스 이벤트를 통한 프리드로우입니다.
2단계 : 1단계를 해보니 할 때마다 다시 페인트를 해서 번쩍번쩍 거림..쓰레드 구현 필요(우리 수업도 빨리 쓰레드,Db,IO가 나가야 할텐데..벌써 한달이 지났엉..==;)
3단계 : 이걸 DB든 파일이든 직렬화 저장해서 정말 스마트폰에 있는 그림메모처럼 만드는 게 목표.
최종단계 : 이걸 그대로 안드로이드폰에 옮겨봄...ㅋ
암튼 현재 1단계 성공..
소스첨부하니 참고하실 분 보세요.
import java.awt.BasicStroke;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.util.ArrayList;
import javax.swing.JFrame;
public class DrawTest extends JFrame {
MyCanvas canvas;
ArrayList<Vortex> list;
public DrawTest(){
super("DrawTest");
System.out.println("DrawTest 시작");
list = new ArrayList<Vortex>();
canvas = new MyCanvas();
canvas.setBackground(Color.WHITE);
canvas.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent me){
list.add(new Vortex(me.getX(),me.getY(),false));
}
});
canvas.addMouseMotionListener(new MouseMotionAdapter(){
public void mouseDragged(MouseEvent me){
list.add(new Vortex(me.getX(),me.getY(),true));
canvas.repaint();
}
});
this.add(canvas);
this.setSize(300,300);
}
class Vortex{
float x;
float y;
boolean isDraw;
public Vortex(float x,float y,boolean isDraw){
this.x = x;
this.y = y;
this.isDraw = isDraw;
}
}
class MyCanvas extends Canvas{
public void paint(Graphics g){
Graphics2D g2d = (Graphics2D)g;
g2d.setStroke(new BasicStroke(2)); // 선 굵기 설정
int size = list.size();
for(int i=0;i<size;i++){
Vortex tex = (Vortex)list.get(i);
if(tex.isDraw){
g.drawLine((int)list.get(i-1).x, (int)list.get(i-1).y,
(int)list.get(i).x, (int)list.get(i).y);
}
}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new DrawTest().setVisible(true);
}
}
'자바 > 자바팁' 카테고리의 다른 글
파일이름 중복 검사하는 policy 파일 만들기 (0) | 2010.11.17 |
---|---|
Introduction to Object Serialization(객체직렬화를 통한 파일 저장 및 DB저장 튜터리얼) (1) | 2010.11.16 |
업캐스팅 관련 설명 (0) | 2010.11.15 |
내부클래스 설명 (1) | 2010.11.10 |
XML DOM 자바로 이해하기 (0) | 2010.11.07 |