[] STUDY ³»¿ë

ÀÛ¼ºÀÏ 2003-10-21
ÀÛ¼ºÀÚ park
Á¶È¸¼ö 982
Á¦ ¸ñ ±×·¡ÇÈ ¸â¼Òµå

¸ñ·ÏÀ¸·Î | ¼öÁ¤ | »èÁ¦ | Á¤º¸Ãß°¡[reply] | ½Å±ÔÀÔ·Â

±×·¡ÇÈ ¸Þ¼Òµå


GUI ȯ°æ¿¡¼­ÀÇ ¸ðµç ÄÄÆ÷³ÍÆ®´Â µ¶¸³ÀûÀ¸·Î ÆäÀÎÆÃÀÛ¾÷À» ÇÑ´Ù. ³»ºÎÀûÀ¸·Î paint() ¸Þ¼Òµå°¡ »ðÀԵǾî ÀÖÀ¸¸ç ½Ã½ºÅÛ¿¡ ÀÇÇؼ­ È£ÃâµÈ´Ù.

¸ðµç ÄÄÆ÷³ÍÆ®´Â ¿øµµ¿ì ½Ã½ºÅÛ¿¡ ÀÇÇØ ÀÚµ¿À¸·Î ÆäÀÎÆõDZ⠶§¹®¿¡ »ç¿ëÀڴ Ưº°ÇÑ ¹«¾ð°¡¸¦ ÇÏÁö ¾Ê¾Æµµ µÈ´Ù. ÀÚ¹Ù´Â °³¹ßÀÚ°¡ ±×·¡ÇÈÀ» º°µµ·Î ÇÒ ¼ö ÀÖµµ·Ï 4°¡ÁöÀÇ ÄÄÆ÷³ÍÆ®¸¦ Àç°øÇÏ°í ÀÖ´Ù.

  • Applet
  • Canvas
  • Frame
  • Panel

À§¿¡ ±â¼úµÈ 4°¡ÁöÀÇ ÄÄÆ÷³ÍÆ®´Â ÆäÀÎÆÃÀÛ¾÷ÀÌ ÀÚµ¿À¸·Î ÀÌ·ç¾îÁöÁö ¾ÊÀ¸¸ç °³¹ßÀÚ°¡ Àû½Ã¿¡ ÆäÀÎÆÃÀÌ ÀÌ·ç¾î Áú ¼ö ÀÖµµ·Ï Á¶Ä¡ÇÏ¿©¾ß ÇÑ´Ù.

¸ðµç ÄÄÆ÷³ÍÆ®´Â ³»ºÎ¿¡ paint()¸Þ¼Òµå°¡ ±â¼úµÇ¾î ÀÖ¾î ´Ù½Ã ±×·ÁÁ®¾ßÇÒ ¶§ ÀÚµ¿À¸·Î paint()°¡ È£ÃâµÇ¾î ´Ù½Ã ±×·ÁÁö°Ô µÈ´Ù. ±×·¯³ª, ÀÌ paint()¸Þ¼Òµå´Â »ç¿ëÀÚ°¡ Á÷Á¢ È£ÃâÇÒ ¼ö ¾ø°í repaint()¸Þ¼Òµå È£ÃâÇÏ¿©¾ß ÇÑ´Ù.

»ç¿ëÀÚ -> repaint() È£Ãâ -> update() -> paint()

update() ¸Þ¼Òµå´Â ÀÌ¹Ì ±×·ÁÁø È­¸éÀ» ¸ðµÎ Áö¿ö´Â ¿ªÇÒÀ» ÇÏ°í, paint()¸Þ¼Òµå¿¡ ÀÇÇØ ´Ù½Ã ±×·ÁÁö°Ô µÈ´Ù. À§ 4°¡Áö ÄÄÆ÷³ÍÆ®¸¦ »ç¿ëÇÏ¿© »ç¿ëÀÚ ±×·¡ÇÈÀ» ±×¸®·Á¸é paint()¸Þ¼Òµå¸¦ OverridingÇÏ¿© ±â¼úÇÏ°í repaint()¸¦ È£ÃâÇÏ¿© paint()¸¦ ¼öÇàÇϸéµÈ´Ù

Applet°ú FrmaeÀº ÀÚü°¡ ±×·¡ÇÈÀ» ±¸ÇöÇÒ ¼ö ÀÖ´Â ÄÁÅ×À̳ÊÀÌ°í, Canvas¿Í PanelÀº paint()¸Þ¼Òµå¸¦ Overridingó¸®ÇÏ¿© ±×·¡ÇÈÀ» ±¸ÇöÇÑ´Ù.

1. Graphics Context

±×·¡ÇÈ ÀÛ¾÷À» ÇÒ ¼ö Àִ ȯ°æÀ» ÀǹÌÇÑ´Ù. ¿¹¸¦ µé¾î ÁÂÇ¥, »ö»ó, ÆùÆ®µîµî.

1) ÁÂÇ¥°è

ÄÄÇ»ÅÍ¿¡¼­´Â ´ëºÎºÐ ÁÂÇ¥ÀÇ ¿øÁ¡À» ÁÂÃø »ó´ÜÀ» (0,0)À¸·Î ½ÃÀÛÇÏ¿© (width-1, height-1)±îÁö¸¦ ÁÂÇ¥·Î »ç¿ëÇÏ°í ÀÖ°í, ÀÌÁÂÇ¥ÀÇ ÃÖ¼Ò ´ÜÀ§´Â pixel(È­¼Ò)ÀÌ´Ù.

2) Clipping Area

Ŭ¸®ÇÎ ¿µ¿ªÀ̶õ ´Ù½Ã ±×·Á¾ß ÇÒ ÇÊ¿ä°¡ ÀÖ´Â È­¸éÀÇ ÀϺθ¦ ³ªÅ¸³½´Ù. ¿¹¸¦ µé¾î ÄÄÆ÷³ÍÆ®ÀÇ Å©±â°¡ ¹Ù²î¾ú´Ù´Â°¡, À©µµ¿ì°¡ ´Ù¸¥ À©µµ¿ì¿¡ ²®ÃÄ ’´Ù°¡ µÇµ¹¾Æ¿Ô´Ù´ø°¡ Çϸé Ŭ¸®Çοµ¿ªÀÌ ¹ß»ýÇÏ°Ô µÈ´Ù. ±×·¡ÇÈ Àüü ¿µ¿ªÀ» ´Ù½Ã ±×·ÁÁÖ´Â °Íº¸´Ù ¼Óµµ°¡ ºü¸£±â ¶§¹®¿¡ Ưº°ÇÑ °æ¿ì°¡ ¾Æ´Ï¸é Ŭ¸®ÇÎ ¿µ¿ª¸¸ ´Ù½Ã ±×·ÁÁÖ´Â °ÍÀÌ ÁÁ´Ù.

2. Method

translate(x,y)

ÁÂÇ¥ÀÇ ¿øÁ¡À» (x,y)·Î À̵¿½ÃŲ´Ù.

drawString(str,x,y)

¹®ÀÚ¿­

draw3DRect(x,y,w,h,bo)

ÀÔü »ç°¢Çü

fill3DRect(x,y,w,h,bo)

ä¿öÁø ÀÔü »ç°¢Çü

drawRect(x,y,w,h)

ºó »ç°¢Çü

fillRect(x,y,w,h)

ä¿öÁø »ç°¢Çü

drawOval(x,y,w,h)

Ÿ¿øÇü

fillOval(x,y,w,h)

ä¿öÁø Ÿ¿øÇü

drawArc(x,y,w,h,s,r)

È£

fillArc(x,y,w,h,s,r)

ä¿øÁø È£

drawPolygon(x[],y[],l)

´Ù°¢Çü

fillPolygon(x[],y[],l)

ä¿öÁø ´Ù°¢Çü

drawPolyline(x[],y[],l)

¿¬°á¼±

drawString(str, x, y)

¹®ÀÚ¿­ Ãâ·Â

drawRoundRect(x,y,w,h,aw,ah)

µÕ±Ù »ç°¢Çü

fillRoundRect(x,y,w,h,aw,ah)

ä¿øÁø µÕ±Ù »ç°¢Çü

drawImage(obj,x,y,this)

À̹ÌÁö

drawLine(x1,y1,x2,y2)

¼±

x

x ÁÂÇ¥

r

ȸÀü°¢µµ

aw

ÄÚ³Ê ³ÐÀÌ

y

y ÁÂÇ¥

x[]

x ÁÂÇ¥ÀÇ ¹è¿­

ah

ÄÚ³Ê ³ôÀÌ

w

³ÐÀÌ

y[]

y ÁÂÇ¥ÀÇ ¹è¿­

bo

boolean

h

³ôÀÌ

l

¹è¿­ÀÇ °¹¼ö



s

½ÃÀÛ °¢µµ

str

¹®ÀÚ¿­



1) drawImage()

À̹ÌÁö ºÎºÐÀº Applicattion ¿¡¼­¿Í Applet¿¡¼­ »ç¿ë ¹æ¹ýÀÌ ¼­·Î ´Ù¸£´Ù. ¿©±â¿¡¼­´Â Application¿¡¼­ »ç¿ëÇÏ´Â ¹æ¹ý¸¸À» ±â¼úÇÑ´Ù.

Image img = Toolkit.getDefaultToolkit().getImage("./images/a.jpg"); // À̹ÌÁö¸¦ µð½ºÅ© ÀåÄ¡·ÎºÎÅÍ °¡Á®¿È.

scr.drawImage(img, 200,200, this); // °¡Á®¿Â À̹ÌÁö¸¦ Ãâ·ÂÇÔ

2) Ä÷¯ÁöÁ¤

Ä÷¯ÁöÁ¤ : g.setColor(Color.red) or g.setColor(new Color(red,green, blue))ÇüÅ·ΠÁöÁ¤.

3) ±âº»ÀûÀ¸·Î Àç°øµÇ´Â Ä÷¯ »ó¼ö

»ó¼ö°ª

»ö»ó

»ó¼ö°ª

»ö»ó

Color.black

°ËÁ¤»ö

Color.orange

ÁÖȲ»ö

Color.blue

ÆĶõ»ö

Color.pink

ºÐÈ«»ö

Color.cyan

Çϴûö

Color.red

»¡°£»ö

Color.darkGray

£Àº ȸ»ö

Color.white

Èò»ö

Color.gray

ȸ»ö

Color.yellow

³ë¶õ»ö

Color.lightGray

¿¶Àº ȸ»ö

Color.green

³ì»ö

Color.magenta

ÁøÈ«»ö




3. Ä÷¯°ª »ý¼ºÇÏ¿© »ç¿ëÇϱâ

Color c=new Color(r,g,b); //red, green, blue ÀÇ 10Áø¼ö°ª

screen.setColor(c);


4. Font ÁöÁ¤Çϱâ

setFont("ÆùÆ®¸í", ½ºÅ¸ÀÏ, Å©±â);


1) ÆùÆ®¸í : °¢ Ç÷§Æû¸¶´Ù ÁöÁ¤µÇ´Â ÆùÆ®°¡ ´Ù¸£´Ù. ÇÏÁö¸¸ "Serif", "SansSerif", "Monospaced"´Â ¹Ýµå½Ã ÁöÀ©µÇµµ·Ï µÇ¾î ÀÖ´Ù.

2) ÇØ´ç Ç÷§Æû¿¡¼­ Áö¿øµÇ´Â ÆùÆ®¸í ¾Ë¾Æ³»±â (Window ¿ë)

3) ½ºÅ¸ÀÏ : ÀϹÝÇü(Font.PLAIN), °­Á¶Ã¼(Font.BOLD), ÀÌÅŸ¯Ã¼(Font.ITALIC)

5. ±×¸²Áö¿ì±â

¹èŸÀû ³í¸®ÇÕ(XOR)¸¦ »ç¿ëÇÏ¸é ¾ÆÁÖ Æí¸®ÇÏ°Ô ±×¸²À» »èÁ¦ÇÒ ¼ö ÀÖ´Ù.

g.setXORMode(Ä÷¯);

ÇöÀçÀÇ »ö°ú ÀÌ¹Ì ±×·ÁÁ® ÀÖ´Â »ö°úÀÇ ³í¸®ÇÕÀ» ¸¸µé¸ç ½ÇÁ¦·Î ¾î¶² »öÀÌ ³ªÅ¸³¯Áö´Â ¹ÌÁö¼ö´Ù.

ÇöÀç ¹ÙÅÁ»ö, ÇöÀç »ö, xorÀÇ Ä÷¯»ö ÀÌ ¼¼°¡ÁöÀÇ »ö»óÀÌ ¼­·Î XOR·Î ¿¬»êó¸® µÈ´Ù.

¿¹¸¦ µé¾îº¸¸é,

ÇöÀç ¹ÙÅÁ»öÀ» Èò»ö(111), ÇöÀç»öÀº »¡°­»ö(100), xor»öÀº Èò»ö(111)À̶ó°í Çϸé

¹ÙÅÁ»ö(111) ^ ÇöÀç»ö(100) = 011 ÀÌ µÈ´Ù. "011"Àº ÇϴûöÀÌ´Ù. À̸¦ ´Ù½Ã xor»öÀ¸·Î ¿¬»êÇϸé
011 ^ 111 = 100 Áï, ¹ÙÅÁ»öÀÌ »¡°­»öÀÌ µÈ´Ù.

µ¿ÀÏÇÑ »öÀ» °¡Áö°í Çѹø ¿¬»ê ÇÏ°Ô µÇ¸é

100 ^ 100 ^ 111 = 111 ·Î ¹Ù²î¾î¼­ ´Ù½Ã ¹ÙÅÁ»öÀÎ Èò»ö(111)·Î º¹±ÍµÈ´Ù.

¹°·Ð ÀÌ·± ¿¬»ê°á°ú´Â ¹ÙÅÁÀÌ Èò»öÀÏ °æ¿ì´Â ¸ðµÎ Àû¿ëµÇ°í Èò»öÀÌ ¾Æ´Ñ °æ¿ì´Â ±× °á°ú°¡ ´Ù¸£°Ô ³ªÅ¸³­´Ù.

6. °ãÃı׸®±â

g.setPaintMode();

ÁÖ¿öÁø »ö»óÀ¸·Î °ãÃı׷ÁÁø´Ù. setXORMode´Â ¹ÙÅÁ»ö°ú ¼¯¿©¼­ ±×·ÁÁú ¼ö ÀÖÁö¸¸ setPaintMode()´Â ¹ÙÅÁ»öÀ» ÁÖ¿öÁø »öÀ¸·Î ¿ÏÀüÈ÷ µ¤¾î ¹ö¸°´Ù.


±×·¡ÇÈ ¸â¼Òµå °ú(¿Í) °ü·ÃµÈ Ãß°¡ Á¤º¸

  • ¸¶¿ì½º¸¦ »ç¿ëÇÏ¿© ¼±±×¸®±â [2004-04-14] [park´Ô Àç°ø] [Á¶È¸:2057]
  • ¸¶¿ì½º¸¦ »ç¿ëÇÏ¿© »ç°¢Çü ±×¸®±â [2004-04-14] [park´Ô Àç°ø] [Á¶È¸:1015]
  • ¸¶¿ì½º·Î »ç°¢Çü ±×¸®°í reDrawÇϱâ [2004-04-14] [park´Ô Àç°ø] [Á¶È¸:1593]
  • µµÇü ±×¸®±â¿Í ¸Þ´º [2004-04-16] [park´Ô Àç°ø] [Á¶È¸:1087]
  • ±×·¡ÇÈ ¸â¼Òµå [2003-10-21] [park´Ô Àç°ø] [Á¶È¸:982]

    ¸ñ·ÏÀ¸·Î | ¼öÁ¤ | »èÁ¦ | Á¤º¸Ãß°¡[reply] | ½Å±ÔÀÔ·Â