¼Ò¼³°°ÀºÀÚ¹Ù3ºÎ  15Àå ¾ÖÇø´  15.7 ¾ÖÇø´¿¡¼­ Image´Ù·ç±â  

 

15.7 ¾ÖÇø´¿¡¼­ Image ´Ù·ç±â

¾ÖÇø´¿¡¼­ À̹ÌÁö¸¦ ·ÎµùÇÏ´Â °ÍÀº »ó´çÈ÷ ½±½À´Ï´Ù. ÀÚ¹Ù ÇÁ·Î±×·¥ÀÇ ¸ðÅä·Î ³»¼¼¿ì°í ÀÖ´Â °ÍÀÌ ¹Ù·Î ³×Æ®¿÷ ÇÁ·Î±×·¥ÀÎ °Íó·³ ¾ÖÇø´¿¡¼­ ±×¸²À» ·ÎµùÇϰųª »ç¿îµåÆÄÀÏÀ» ·ÎµùÇÏ´Â °ÍÀº ±âº»ÀûÀ¸·Î ¾ÖÇø´ÀÇ ¸â¹ö¸Þ¼­µå°¡ Á¦°øÇØ ÁÖ°í ÀÖ½À´Ï´Ù. ¿©·¯ºÐÀÌ ÀØÁö ¸»¾Æ¾ß ÇÏ´Â °ÍÀº ³×Æ®¿÷ÀÇ Æ¯Á¤ À§Ä¡¿¡ ÀÖ´Â À̹ÌÁö¸¦ ·ÎµùÇÏ´Â °ÍÀ» ½ÇÁ¦ ¸¸µé·Á¸é ÄÚµùÀÌ ´õ ¸¹ÀÌ ¿ä±¸ µÇ¾îÁöÁö¸¸ ¾ÖÇø´ÀÇ getImageÇÑÁÙ·Î À̹ÌÁö¸¦ ·ÎµùÇÒ ¼ö ÀÖ´Ù´Â »ç½ÇÀÔ´Ï´Ù. À̰ÍÀÌ ÀÚ¹ÙÀÇ ¸Å·ÂÀÌ ¾Æ´Ò±îÇÕ´Ï´Ù.

 

À̹ÌÁö ·Îµù¿¡ °ü·ÃµÈ ¿¹Á¦¸¦ ¾Ë¾Æº¸µµ·Ï ÇÏÁÒ. ÇÁ·Î±×·¥À» ½ÇÇàÇϱâ Àü¿¡ ¿©·¯ºÐÀº classÆÄÀϰú htmlÆÄÀÏÀÌ ÀÖ´Â À§Ä¡¿¡ 2°³ÀÇ gifÆÄÀÏÀ» ÁغñÇϽñ⠹ٶø´Ï´Ù. ´ÙÀ½Àº À̹ÌÁö 2°³¸¦ ·ÎµùÇÏ¿© ƯÁ¤ÁÂÇ¥¿¡ 2°³ÀÇ À̹ÌÁö¸¦ ±×¸®´Â ¿¹Á¦ÀÔ´Ï´Ù.

 

ImageLoad.java (À̹ÌÁö¸¦ ·ÎµåÇÏ´Â ¿¹Á¦)

import java.awt.*;

import java.applet.Applet;

public class ImageLoad extends Applet {

   private Image img1=null;  

   private Image img2=null;  

   public void init() {     

     img1 = this.getImage(getDocumentBase(), "./javalogo.gif");    

     img2 = this.getImage(getDocumentBase(), "./core.gif");   

   } 

   public void paint(Graphics g) {                 

       g.drawImage(img1, 20,20, this);

       g.drawImage(img2, 100,20, this);        

   }

}

ImageLoad.html

<html><head><title>Image Loading Test</title></head>

<body>

<applet code="ImageLoad.class" width=200 height=140></applet>

</body></html>

C:\JavaExample\15>javac ImageLoad.java

 

 À̹ÌÁö¸¦ ·ÎµùÇÏ´Â ºÎºÐÀ» Çѹø º¸½Ã±â ¹Ù¶ø´Ï´Ù.

 

n        img1 = this.getImage(getDocumentBase(), "./javalogo.gif");

n        img2 = this.getImage(getDocumentBase(), "./core.gif");

 

getImage¶ó´Â ¸Þ¼­µå´Â URLÀÇ À§Ä¡¿Í À̹ÌÁöÆÄÀÏÀ̸§À» ÁÖ¸é ÇØ´ç À̹ÌÁö¸¦ ·ÎµùÇÏ¿© À̹ÌÁö °´Ã¼¸¦ ¸®ÅÏÇÏ´Â ¸Þ¼­µåÀÔ´Ï´Ù. ÀÌ ¸Þ¼­µå´Â ´ç¿¬È÷ AppletÀÇ ¸â¹ö·Î µî·ÏµÇ¾î Àֱ⠶§¹®¿¡ ¾ÖÇø´ ³»¿¡¼­´Â ¸¶À½´ë·Î »ç¿ëÇØµµ ¹«°üÇÑ ¸Þ¼­µåÀÔ´Ï´Ù.

 

n        Image getImage(URL url) : ÁÖ¾îÁø URL¿¡ ÇØ´çÇÏ´Â À̹ÌÁö °´Ã¼¸¦ ¾ò´Â´Ù.

n        Image getImage(URL url, String name): ÁÖ¾îÁø url°ú name¿¡ ÇØ´çÇÏ´Â À̹ÌÁö °´Ã¼¸¦ ¾ò´Â´Ù.

 

GetImage¸Þ¼­µå¿¡¼­ ¸Å°³º¯¼ö·Î »ç¿ëµÇ¾îÁø URL urlÀº Àüü°æ·Î°¡ µÉ ¼öµµ ÀÖÀ¸¸ç ƯÁ¤µð·ºÅ丮 °æ·Î°¡ µÉ ¼öµµ ÀÖ½À´Ï´Ù. ±×¸®°í String nameÀº urlÀÌ µð·ºÅ丮 °æ·ÎÀÏ ¶§ ±× ³ª¸ÓÁö¸¦ StringÀ¸·Î ³Ö¾îÁÖ¸é µË´Ï´Ù.

 

±×·±µ¥ getDocumentBase¶ó´Â °ÍÀ» Çѹø º¸½Ã±â ¹Ù¶ø´Ï´Ù. º¸Åë AppletÀÇ ¸â¹ö¸Þ¼­µå , getDocumentBase¿Í getCodeBase´Â ºñ½ÁÇÑ °³³äÀä. ÇöÀç HtmlÀÌ ÀÖ´Â URL À§Ä¡¸¦ ¾ò±â À§Çؼ­´Â getDocumentBase¸Þ¼­µå¸¦ »ç¿ëÇϰí AppletÀÇ classÆÄÀÏÀÌ ÀÖ´Â À§Ä¡¸¦ ¾ò±â À§Çؼ­´Â getCodeBase¸Þ¼­µå¸¦ »ç¿ëÇÕ´Ï´Ù. ÀϹÝÀûÀ¸·Î´Â °°Àº µð·ºÅ丮¿¡ ÀÖÁÒ.

 

n         URL getCodeBase():AppletÇÁ·Î±×·¥ ÆÄÀÏÀÌ ÀÖ´Â À§Ä¡ÀÇ µð·ºÅ丮 Á¤º¸¸¦ URL·Î ¸®ÅÏÇÑ´Ù.

n         URL getDocumentBase():¾ÖÇø´À» Æ÷ÇÔÇϰí ÀÖ´Â htmlÆÄÀÏÀÌ ÀÖ´Â À§Ä¡ÀÇ µð·ºÅ丮 Á¤º¸¸¦ URL·Î ¸®ÅÏÇÑ´Ù.

 

ÀÚ! ÀÌÁ¦ À̹ÌÁöÀÇ ¾à°£ º¯ÇüµÈ ¿¹Á¦¸¦ Çϳª »ìÆìº¸µµ·Ï ÇÏÁÒ. ¾Æ·¡ÀÇ ¿¹Á¦´Â ¾ÖÇø´À» ·ÎµùÇÒ ¶§ Image 3°³¸¦ ¾ò°í ¹öưÀ» Ŭ¸¯ÇÒ ¶§ ¸¶´Ù À̹ÌÁö°¡ ¹Ù²îµµ·Ï ÀÛ¼ºÇÑ ÇÁ·Î±×·¥ÀÔ´Ï´Ù. ¿ì¼± ÇÁ·Î±×·¥Çϱâ Àü¿¡ À̹ÌÁö3°³¸¦ html°ú appletŬ·¡½º°¡ ÀÖ´Â À§Ä¡¿¡ ÁغñÇϽñ⠹ٶø´Ï´Ù.

 

ImageChange(¹öưÀ» ´©¸¦ ¶§ À̹ÌÁö°¡ ¹Ù²î´Â ¿¹Á¦)

import java.applet.*;

import java.awt.*;

public class ImageChange extends Applet{

   private Button b1=null;   

   private Image img1,img2,img3 = null;

   private Image temp = null;   

   private int myflag=1;   

   public void init(){           

       this.b1 = new Button("Image Change");

       this.add(b1);

      

       this.img1 = this.getImage(this.getDocumentBase(), "./core.gif");

       this.img2 = this.getImage(this.getDocumentBase(), "./javalogo.gif");    

       this.img3 = this.getImage(this.getDocumentBase(), "./java12.gif");   

   }   

   public void paint(Graphics g){          

       if(temp!=null)              

          g.drawImage(temp, 10,30, this);   

   }

   public boolean action(Event evt, Object what){       

       this.myflag +=1;

       if (myflag>3){

          myflag = 1;

       }

       if(myflag==1){                 

          temp = img1;                 

          repaint();                 

       }else if(myflag==2){                 

          temp = img2;                 

          repaint();                  

       }else if(myflag==3){                 

          temp = img3;                 

          repaint();                 

       }

       return true;   

   }

}

ImageChange.html

<html><head><title>Image Change Test</title></head>

<body>

<applet code="ImageChange.class" width=200 height=140></applet>

</body></html>

C:\JavaExample\15>javac ImageChange.java

Note: ImageChange.java uses or overrides a deprecated API.

Note: Recompile with -deprecation for details.

 

À̹ÌÁö 3°³¸¦ ·ÎµùÇÏ°í ¹öưÀ» Ŭ¸¯ÇÒ ¶§¸¶´Ù À̹ÌÁö3°³¸¦ ¹ø°¥¾Æ°¡¸é¼­ Image temp¿¡ ÇÒ´çÇÑ ÈÄ repaint¸¦ È£ÃâÇϰí ÀÖ½À´Ï´Ù. repaint´Â awt¿¡¼­ ÀÌ¹Ì ¼³¸íÇÑ °Í°ú °°ÀÌ È­¸éÀ» refreshÇÏ´Â ±â´ÉÀ» °¡Áö°í ÀÖ½À´Ï´Ù. ´ÙÀ½À¸·Î Sound¿¡ °ü·ÃµÈ ¿¹¸¦ Çϳª ¾Ë¾Æ º¸µµ·Ï ÇÏÁÒ.



jabookÀúÀÚ¸íÇÔ
Á¦¸ñ:¼Ò¼³°°ÀºÀÚ¹Ù3ºÎ
ÀúÀÚ:ÃÖ¿µ°ü