2학기 9주차_2

시험문제에 대한 반성을 좀해봐야지..;; ,,ㅋ

1번문제.
아마도 프레임 컨버스안에 사각형을 그리고 지우고 그리고 지우고 하는
그런작업 ㅋㅋㅋ 사각형 크기는 계속 변하고..;;

코딩은......
import java.awt.*;
import java.awt.event.*;

public class Mouse{

 static Choice ch;
 static Canvas cv;
 static int index = 0;
 static Color c [] = { Color.BLUE, Color.GREEN, Color.ORANGE, Color.RED, Color.YELLOW }; 
 
 public static void main(String args[]){
  
  Frame f = new Frame();
  f.setSize(300,200);
  Button b = new Button("확인");
  cv = new Canvas();
  f.add(cv,"Center");
  f.add(b,"South");
  
  b.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent e){

    Graphics g = cv.getGraphics();
    if (index >= 5){
     index = 0;
    }
    g.clearRect(0,0,(int)cv.getSize().getWidth(), (int)cv.getSize().getHeight());
    g.setColor(c[index]);
    g.fillRect((index*5),(index*5),((index+1)*30), ((index+1)*30));
    index++;
   }   
  });
  f.setVisible(true);
 }

}

굉장히 쉬웠다 ㅡㅡㅋ
별거 있나.. ㅋ
그냥 색 계속 바뀌도록만 칼라배열만들고 인트형 변수 만들어서 색 계속 세팅 되겠금 하고.
할때마다 지워주고
사각형 크기만 변환시키면 되는걸 뭐..;;

근데 머가 이렇게 많이 틀린거지 하고 보니까 ㅡㅡㅋ
일단 클리어 안했고 ㅡㅡㅋ
그래픽스객체를 불러와서 했다는데..;;
아마도 안했나바 ㅡㅡㅋ
그리고 액션퍼폼 그래픽메서드를 안썼나? 흠..;;
그리고 버튼에 액션리스너 연결도 안했대.. 맙소사..;; ㅋㅋㅋ

할말이 업다.



2번문제.
잘기억은 안나지만.. 아마도 마우스 움직임에 대한 거에 선을 그어지도록 해라 였던가.. ㅋ

import java.awt.*;
import java.awt.event.*;


public class Mouse{

  TextField tf;
  int x, y;
  GCanvas c;

 
 public Mouse(){
 
  tf = new TextField(400);
  c = new GCanvas();
  x=0;
  y=0;
  Frame f = new Frame();
        f.setTitle("마우스 움직임과 드래그 좌표");
        f.setSize(300,200);
        c.addMouseMotionListener(new MouseMotionAdapter(){

            public void mouseMoved(MouseEvent e){
              int i = 2;
                  x = e.getX();
                  y = e.getY();
                  if(i%2 == 0){
                  c.setX1(x);
                  c.setY1(y);
                  }
                  else{
                  c.setX2(x);
                  c.setY2(y);
                  }
                  i++;
                  if (i > 10000){
                   i = 2;
                  }
                  tf.setText(e.getX()+","+e.getY());
                  }

    }
        );
     
     f.add(c,"Center");
     f.add(tf,"North");
        f.setVisible(true);
 
 }
 

 public static void main(String[] args) {

  Mouse obj = new Mouse();
 
    }
}


class GCanvas extends Canvas{
 
 int x = 0, y =0,x1= 0,y1= 0;
 
 public void setX1(int a){
  x = a;
 }
 
 public void setY1(int a){
  y = a;
 }

 public void setX2(int a){
  x1 = a;
 }
 
 public void setY2(int a){
  y1 = a;
 }
 
 public void paint(Graphics g){
 
  g.drawLine(x, y, x1, y1);
  g.drawRect(10,20,30,40);
 
 }
 
}



대충 이렇게 다시 코딩 해봣다. 근데 문제는 내가 충분히 천천히 움직이지 않는건지
선은 안그어지더라 ㅋㅋㅋㅋ
좌표값이 어짜피 움직이면 계속 변하니까.. 그값에 맞추어서 세팅 해주면 되는데..;;
이상하네..;; 흠..
시작점위치와 끝날때 위치도 좀 허접하긴 해도 분명히 다르게 줬는데..;; 흠...;;
뭐지.. 그럼 역시 난 충분히 천천히 움직이지 않았던가..;;


내가 틀린게 마우스리스너에 어댑터 사용을 안한거 ㅋㅋㅋ
바본가봐 ㅋㅋㅋㅋ ㅡㅡㅋ 어댑터 안쓸꺼면, 나머지 메소드 구현이라도 해놔야지 ㅡㅡㅋ

그리고 생성자를 통한 인수전달. 이건 무슨말이지?? ㅡㅡㅋ
문제내용이 잘 기억이 안나니 이건뭐..;; ㅡㅡㅋ

아무튼.. 마우스 리스너를 캔버스에 add 시켜서 하는걸 안했나..;;
기억이 안나 기억이 ㅠㅠ

진짜 근데 왜 선이 안그어지지 ㅡㅡㅋ;;;

3번과 4번은 다행히 다맞아서 뭐...;;
별볼일 없게 됫다. 사실 3번과4번은 많은 정성을 쏟았는데..;; 문제도 기억이 안나는건 뭐지.. 파일입출력인데..;;
분명히 그런걸 했었나 하는 그런기분.. ㅋㅋ

아.. 성적표 받고 나니까 암울하다.
이건뭐..;; 시험지에 뻔히 나와있는것도 안해서 틀리고 ㅡㅡㅋ
반평균은 넘었다지만..
실망이다 내가 나한테 ㅋㅋㅋ

좀 꼼꼼해져야지에효..;; ㅋㅋㅋ

by 날아라숑카 | 2008/11/11 17:58 | 실험프로젝트2학기 | 트랙백 | 덧글(1)

트랙백 주소 : http://dduckjava.egloos.com/tb/1085090
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by 김교수 at 2008/11/12 11:20
canvas의 paint는 화면이 모니터에 새롭게 나타날 때 만 실행됩니다. 주의해야할 내용이죠.

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶