826
2015-05-28 22:36:47
0
뭐가 잘못됬는지 잘 찾기 위해서 객체지향을 쓰기도 합니다.
가장 시급한건 기능별로 클래스를 나누는 거라고 생각이 되네요.
해석하던중 이해가 안되던 코드
new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
e.getX();
e.getY();
can.repaint();
}
여기서 e.getX()와 e,getY()는 이벤트가 일어난 장소를 반환합니다.
근데, 그걸 받아 온다는 행위만 있고 그 걸 갖고 어떤 처리를 하는게 없네요.
마치 중요한 변수명을 선언해놓고 사용하지 않은 것처럼 어색합니다.
그리고 안되는 것에 대해 조금 더 자세히 써주시면 좋을 것 같은데
혹시 안되는게
마우스를 Press하고 움직인 뒤 마우스를 Release해도 그림이 안그려지는게 문제라면
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
xs = e.getX();
ys = e.getY();
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
xe = e.getX();
ye = e.getY();
ct();
DrawInfo di = new DrawInfo(xs, ys, xe, ye, pen, c);
vc.add(di);
this.repaint();
}
위의 코드를 보면 누를때 xs,ys에 저장하고 release하면 xe,ye에 저장후
DRAWINFO 객체를 생성합니다.
그리고 (아마도) 가장 중요한 그림을 그려주는 DRAWINFO를 따라가보면
public DrawInfo(int xs2, int ys2, int xe2, int ye2, JButton pen, Color c2) {
// TODO Auto-generated constructor stub
}
이걸 호출합니다.
비어 있군요.
아무것도 안합니다.
아무것도 안그려집니다.
QED