¼Ò¼³°°ÀºÀÚ¹Ù3ºÎ  14Àå ±×·¡ÇÈ  14.6.1 Frame¿¡¼­ Image Load Çϱ⠠

 

     14.6.1 Frame¿¡¼­ Image Load Çϱâ

 

 ¸ÕÀú Frame¿¡¼­ Image LoadÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æ º¸°Ú½À´Ï´Ù. Frame¿¡¼­ Image¸¦ ³ªÅ¸³»´Â ¹æ¹ýµµ ¿©·¯ °¡Áö°¡ ÀÖ½À´Ï´Ù. Frame¿¡ Á÷Á¢ Image¸¦ ³ªÅ¸³»´Â ¹ý, Canvas¿¡ Image¸¦ Ãâ·ÂÇϰí, ±× Canvas¸¦ Frame¿¡ ºÎÂø½ÃŰ´Â ¹ýµµ ÀÖ½À´Ï´Ù. ¿©±â¿¡¼­´Â Frame¿¡ Á÷Á¢ Ãâ·ÂÇÏ´Â ¿¹Á¦¸¦ ¸¸µé¾î º¸¾Ò½À´Ï´Ù. ±×·³ ¿¹Á¦¸¦ º¸½ÃÁÒ.

 

FrameImageTest.java(Frame¿¡¼­ Image¸¦ ·ÎµùÇϱâ À§ÇÑ ¿¹Á¦)

import java.awt.*;

import java.awt.image.*;

public class FrameImageTest extends Frame {

   private Image image = null;

   private BufferedImage bi =null;

   private int width =0;

   private int height =0;

   public FrameImageTest() {

       this.setSize(150,170);

       this.show();

   }                            

   public void makeImage(String filename) {

     try {

        image = Toolkit.getDefaultToolkit().getImage(filename);

        MediaTracker tracker = new MediaTracker(this);

        tracker.addImage(image,0);

        tracker.waitForID(0);

       width= image.getWidth(null);

        height= image.getHeight(null);

        bi = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);

        Graphics gg = bi.getGraphics();       

        gg.drawImage(image, 0,0, this);

        gg.dispose();

        repaint();

     } catch (Exception ex){

        System.out.println(ex.toString());

     }

   }

   public void paint (Graphics g) {

       if(bi!=null)

          g.drawImage(bi, 50,50, this);

   }

   public static void main(String[] args) {

       FrameImageTest fit = new FrameImageTest();

       fit.makeImage("java_logo.jpg");

   }

}

C:\JavaExample\14>javac FrameImageTest.java

C:\JavaExample\14>java FrameImageTest

 

 À§ÀÇ ¿¹Á¦´Â Àü¿¡ º¸¾Ò´ø MediaTracker¿¡¼­ »ç¿ëµÈ ¿¹Á¦¸¦ Á¶±Ý ¼öÁ¤ÇÏ¿© ´Ù½Ã »ç¿ëÇÑ °ÍÀÔ´Ï´Ù.

 ¸ÕÀú FrameImageTestŬ·¡½ºÀÇ °´Ã¼¸¦ ¸¸µé¾î FrameImageTestŬ·¡½ºÀÇ ¸â¹ö¸Þ¼­µåÀÎ makeImage()¸Þ¼­µå¸¦ È£ÃâÇÏ¿´½À´Ï´Ù. ±×¸®°í »ý¼ºÀÚ¿¡¼­ FrameÀÇ Å©±â¸¦ ÁöÁ¤ÇÏ¿´½À´Ï´Ù.

 

n        FrameImageTest fit = new FrameImageTest();

n        fit.makeImage("java_logo.jpg");

n        public FrameImageTest() {

n           this.setSize(150,170);

n           this.show();

n        }

 

makeImage()¸Þ¼­µå¿¡¼­ ImageŬ·¡½ºÀÇ °´Ã¼ image¸¦ »ý¼ºÇß½À´Ï´Ù.

 

n        Image image = Toolkit.getDefaultToolkit().getImage(filename);

 

¢Ñ image°´Ã¼»ý¼º

Image image = Toolkit.getDefaultToolkit().getImage(filename);

 

 java.awt.ToolkitŬ·¡½ºÀÇ ¸â¹ö¸Þ¼­µåÀÎ getDefaultToolkit()¸Þ¼­µå¿Í getImage(String filename)¸Þ¼­µå¸¦ »ç¿ëÇÏ¿© image°´Ã¼¸¦ ¾ò¾î¿À°í ÀÖ½À´Ï´Ù. ´ÙÀ½¿¡ °è¼ÓÇØ¼­ ³ª¿À´Â MediaTrackerºÎºÐÀº ¼³¸íÀ» »©µµ·Ï ÇϰڽÀ´Ï´Ù. ±×¸®°í ·ÎµùµÈ À̹ÌÁöÀÇ width¿Í height¸¦ ±¸Çϰí ÀÖ½À´Ï´Ù.

 

n        width= image.getWidth(null);

n        height= image.getHeight(null);

 

 ÀÌ µÎ°ªÀº ¸Å°³º¯¼ö·Î »ç¿ëµÉ °ªµé ÀÔ´Ï´Ù. ±×¸®°í ·ÎµåµÈ ¹ÙÀÌÆ®¸¦ ´ã¾ÆµÑ BufferedImageÀÇ °´Ã¼ bi»ý¼ºÇÕ´Ï´Ù.

 

n        bi = new BufferedImage (width ,height ,BufferedImage.TYPE_INT_RGB);

n        Graphics gg = bi.getGraphics();    

 

 »ý¼ºµÈ °´Ã¼ biÀÇ ¸â¹ö¸Þ¼­µåÀÎ getGraphics()¸Þ¼­µå¸¦ »ç¿ëÇÏ¿© Graphics2DÀÇ °´Ã¼ÀÎ Graphics¸¦ ¾ò¾î³À´Ï´Ù. ¾ò¾î³½ °´Ã¼ gg¸¦ ÀÌ¿ëÇÏ¿© À̹ÌÁö¸¦ ±×¸®´Â ¸Þ¼­µåÀÎ drawImage()¸¦ È£ÃâÇÏ¿´½À´Ï´Ù.

 

n        gg.drawImage(image, 0,0, this);

n        gg.dispose();

n        repaint();

 

 drawImage(image, 0, 0, this)¸Þ¼­µå´Â Frame¿¡ ºó Image¸¦ ±×·ÁÁÝ´Ï´Ù. ±×¸®°í, dispose()¸Þ¼­µå´Â ÀÌ ±×·¡ÇÈ ¹®¸ÆÀ» ó¸®Çϰí ÀÌ ±×·¡ÇÈ ¹®¸Æ¿¡¼­ »ç¿ë ÁßÀÎ ½Ã½ºÅÛ ÀÚ¿øÀ» ÇØÁ¦ÇÕ´Ï´Ù. dispose()¸Þ¼­µå¸¦ È£ÃâÇÑ ÈÄ¿¡´Â ÀÌ Graphics°´Ã¼¸¦ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.

 ÄÄÆ÷³ÍÆ®ÀÇ paint() ¹× update()¸Þ¼­µå°¡ ¸®ÅÏÇÏ¸é ½Ã½ºÅÛÀº ¸Þ¼­µåÀÇ Àμö·Î Á¦°øµÇ´Â ±×·¡ÇÈ °´Ã¼¸¦ ÀÚµ¿ÀûÀ¸·Î ÇØÁ¦ÇÕ´Ï´Ù. È¿À²¼ºÀ» À§ÇØ ÇÁ·Î±×·¥ ÀÛ¼ºÀڴ ƯÁ¤ ÄÄÆ÷³ÍÆ®¿¡¼­ Á÷Á¢ ¶Ç´Â ´Ù¸¥ Graphics°´Ã¼¿¡¼­ Graphics°´Ã¼¸¦ ÀÛ¼ºÇßÀ» °æ¿ì¿¡¸¸ ÀÌ °´Ã¼ »ç¿ëÀ» ¿Ï·áÇßÀ» ¶§ dispose¸¦ È£ÃâÇØ¾ß ÇÕ´Ï´Ù. ¸»ÀÌ ¾î·Æ±º¿ä. ´Ù½Ã ¼³¸íµå¸®¸é Graphics°´Ã¼¸¦ »ý¼ºÇÏ¿© »ç¿ëÇÏ¿´À» °æ¿ì ´Ù¸¥ Graphics°´Ã¼¸¦ »ý¼ºÇÒ ¼ö´Â ÀÖÁö¸¸, »ç¿ëÀ» ¿Ï·á ÇßÀ» ¶§´Â ²À dipose()¸Þ¼­µå¸¦ ¼öÇàÇ϶ó´Â ¶æÀÔ´Ï´Ù.

 

¢Ñ dispose()

GraphicsÀÇ °´Ã¼¸¦ »ç¿ë ÈÄ¿¡´Â Ç×»ó È£ÃâÇÏ¿© ½Ã½ºÅÛ ÀÚ¿øÀ» ¹Ýȯ½ÃŲ´Ù.

 

 ±×·± ÈÄ¿¡ repaint()¸Þ¼­µå¸¦ È£ÃâÇÏ¿´½À´Ï´Ù. repaint()¸Þ¼­µå´Â È­¸éÀ» ±ú²ýÀÌ Áö¿î ÈÄ paint()¸Þ¼­µå¸¦ È£ÃâÇÕ´Ï´Ù.

 

n        public void paint (Graphics g) {

n           if(bi!=null)

n           g.drawImage(bi, 50,50, this);

n        }

 

 È£Ãâ µÈ paint()¸Þ¼­µå´Â Àü¿¡ »ç¿ëÇÑ GraphicsŬ·¡½ºÀÇ °´Ã¼ gg¿Í´Â ´Ù¸¥ GraphicsŬ·¡½ºÀÇ °´Ã¼ g¸¦ »ý¼ºÇÏ¿´½À´Ï´Ù. ÀÌ ¸Þ¼­µå´Â ·ÎµùµÈ Image¸¦ ÁöÁ¤ÇÏ´Â À§Ä¡¿¡ ±×¸®°Ô µË´Ï´Ù. ¸¹ÀÌ ¾î·Á¿î ¿¹Á¦´Â ¾Æ´Ï¾ú´Ù°í »ý°¢µË´Ï´Ù. ±×·³ ÀÌÁ¦ Applet¿¡¼­ Image¸¦ ·ÎµùÇÏ´Â °ÍÀ» º¸°Ú½À´Ï´Ù.



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