상세 컨텐츠

본문 제목

움직이는 이미지

청강컴정/소프트웨어공학

by luckey 2009. 3. 26. 20:55

본문

 
 1.gif
 애니메이션 되는 이미지
 
 sunImage.jpg
 배경으로 사용할 이미지

 

SunImgExe.java


import org.kwis.msp.lcdui.*;

public class SunImgExe extends Jlet
{
    protected void startApp(String[] args)
    {
        SunImgCard SICard = new SunImgCard(); //SunImgCard 클래스 생성
        Display dis = Display.getDefaultDisplay(); //출력할 카드를 보여줄 화면 설정
        dis.pushCard(SICard);  //Card에 SunImgCard를 출력한다.
    }
    protected void resumeApp(){}
    protected void pauseApp(){}
    protected void destroyApp(boolean b){}
}


SunImgCard.java

import org.kwis.msp.lcdui.*;
import java.io.IOException;

//Card Class를 상속받음 - paint() 및 repaint() 메소드의 사용을 정의한다. - Abstrict
//Runnable, ImageObserver : Interface로써 관련 Method는 Abstrict로 무조건 처리한다.
class SunImgCard extends Card implements Runnable,ImageObserver
{
    int width, height;
    int x, y;
    Image imgPng; //이미지를 생성하여 담을 변수를생성
    Image imgGif;
    Thread mThread = new Thread(this);

    public SunImgCard()
    {
        width = getWidth();
        height = getHeight();
        x = 0;
        y = 0;
        System.out.println("width="+width + ",height=" + height + ",x=" + x + ",y=" + y);
        loadImage();
        imgGif.play(this);
        mThread.start();
     }

    public void run()
    {
       while(true)
       {
           x += 5;
           if(x >= width)
           {
               x = 0;
           }
           repaint();
          
           try
           {
               Thread.sleep(150);
            }
           catch (InterruptedException ex)
           {
              System.out.println("에러" + ex);
           }
        }  //while 종료
     }  //run() 종료

     public void loadImage()
     {
          try
          {
              imgPng = Image.createImage("sunImg.png"); //이미지 할당
              imgGif = Image.createImage("1.gif");
          }
          catch (IOException ex)
          {
              System.out.println("이미지 로드 실패" + ex);
           }
           catch (Exception ex)
           {
               System.out.println("이미지 로드 실패" + ex);
           }
       }

       public void paint(Graphics g)
       {
           g.setColor(255,255,255);
           g.fillRect(0,0,width,height);
           g.drawImage(imgPng, 0, 0, 0);
           g.drawImage(imgGif, x, height/2, 0);
        }

        public void notify(Image img, int status)
        {
            repaint();
         }
}

관련글 더보기

댓글 영역