¸ÕÀú 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ºÎ ÀúÀÚ:ÃÖ¿µ°ü |