±×·¡ÇÈ

SWT¿¡¼­´Â À§ÁöÆ®(widget)·Î ±×·¡ÇÈÀ» ±×¸®°í À̹ÌÁö¸¦ Ç¥½ÃÇÒ ¼ö ÀÖ´Â °­·ÂÇÑ ±×·¡ÇÈ ¿£ÁøÀ» Á¦°øÇÕ´Ï´Ù. À§ÁöÆ®(widget)¿¡¼­ ¾ÆÀÌÄÜ, ÅØ½ºÆ® ¹× ±âŸ µ¥ÀÌÅÍ ±×¸®±â¸¦ ´ë½Å ó¸®ÇØÁֱ⠶§¹®¿¡ ±×·¡ÇÈ ÀÎÅÍÆäÀ̽º¸¦ ÇÁ·Î±×·¡¹ÖÇÏÁö ¾Ê°íµµ ¸¹Àº °ÍÀ» ó¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª, ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­ »ç¿ëÀÚ Á¤ÀÇ ±×·¡ÇÈÀ» Ç¥½ÃÇϰųª »ç¿ëÀÚ Á¤ÀÇ ÀÛ¼º À§ÁöÆ®(widget)¸¦ ±¸ÇöÇÒ °æ¿ì SWTÀÇ ±âº» ±×¸®±â ¿ÀºêÁ§Æ®¸¦ ÀϺΠÀÌÇØÇØ¾ß ÇÕ´Ï´Ù.

±×·¡ÇÈ ÄÁÅØ½ºÆ®

±×·¡ÇÈ ÄÁÅØ½ºÆ® GC´Â SWT ±×·¡ÇÈ Áö¿øÀÇ ÃÊÁ¡ÀÔ´Ï´Ù. ÇØ´ç API¿¡¼­ SWTÀÇ ¸ðµç ±×¸®±â ±â´ÉÀ» ¼³¸íÇÕ´Ï´Ù.

°¡Àå ÀϹÝÀûÀÎ °æ¿ìÀÎ Á¦¾î¿¡ ±×¸®°Å³ª À̹ÌÁö, µð½ºÇ÷¹ÀÌ ¶Ç´Â ÇÁ¸°ÅÍ ±×¸®±â¿¡ GC¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. Á¦¾î¿¡ ±×¸± °æ¿ì »ç¿ëÀÚ¿¡°Ô Á¦°øµÈ Á¦¾îÀÇ ÆäÀÎÆ® À̺¥Æ®¿¡¼­ GC¸¦ »ç¿ëÇÕ´Ï´Ù. À̹ÌÁö, Ç¥½Ã ¶Ç´Â ÇÁ¸°ÅÍ¿¡ ±×¸± ¶§ ÀÌ¿¡ ´ëÇØ ±¸¼ºµÈ GC¸¦ ÀÛ¼ºÇϰí, ¸ðµÎ »ç¿ëÇÑ °æ¿ì GC¸¦ Á¦°ÅÇØ¾ß ÇÕ´Ï´Ù.

GC¸¦ °¡Á®¿ÔÀ¸¸é GC·Î ±×¸° ±×·¡ÇÈÀÇ ¸ð¾çÀ» Á¦¾îÇÏ´Â ¼Ó¼º(¿¹: »ö, ¼± ³Êºñ, ±Û²Ã µî)À» ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.

GC¿¡ ´ëÇÑ API ÂüÁ¶¼­¿¡¼­ ±×·¡ÇÈ ±â´ÉÀÇ Àüü ¼¼Æ®¸¦ ¼³¸íÇÕ´Ï´Ù.

±Û²Ã

SWTÀÇ ±Û²ÃÀ» ó¸®ÇÒ ¶§ Font ¹× FontData Ŭ·¡½º¸¦ »ç¿ëÇÕ´Ï´Ù.

FontData¿¡¼­´Â ±Û²ÃÀÇ Æ¯¼ºÀ» ¼³¸íÇÕ´Ï´Ù. ±Û²Ã À̸§, ½ºÅ¸ÀÏ, Å©±â¸¦ ÁöÁ¤ÇÏ¿© FontData¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. FontData¿¡´Â ÀÌ·¯ÇÑ ¼Ó¼ºÀ» Á¶È¸Çϱâ À§ÇÑ API°¡ Æ÷ÇԵ˴ϴÙ. FontData¿¡¼­ OS ÀÚ¿øÀ» ÇÒ´çÇÏÁö ¾Ê±â ¶§¹®¿¡ À̸¦ »èÁ¦ÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù.

Font´Â ±×¸®±â API¿¡¼­ »ç¿ëµÈ ±Û²ÃÀ» ³ªÅ¸³»´Â ½ÇÁ¦ ±×·¡ÇÈ ¿ÀºêÁ§Æ®ÀÔ´Ï´Ù. ¿øÇÏ´Â ±Û²ÃÀÇ Display ¹× FontData¸¦ ÁöÁ¤ÇÏ¿© DisplayÀÇ Font¸¦ ¸¸µì´Ï´Ù. ÇØ´ç FontDataÀÇ Font¸¦ Á¶È¸ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

»ç¿ëÀÌ ³¡³µÀ¸¸é Font¸¦ »èÁ¦ÇØ¾ß ÇÕ´Ï´Ù.

»ö»ó

»ö»óÀº ±Û²Ã°ú À¯»çÇÕ´Ï´Ù. ¿øÇÏ´Â »ö»óÀÇ RGB °ªÀ» ÁöÁ¤ÇÏ¿© Display¿¡ ´ëÇÑ Color¸¦ ¸¸µì´Ï´Ù. »ç¿ëÀÌ ³¡³µÀ¸¸é »ö»óÀ» »èÁ¦ÇØ¾ß ÇÕ´Ï´Ù.

Display ¸Þ¼Òµå getSystemColor¸¦ »ç¿ëÇϸé OS Ç÷§ÆûÀÇ ¹Ì¸® Á¤ÀÇµÈ ½Ã½ºÅÛ »ö»óÀ» Á¶È¸ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¹æ¹ýÀ» »ç¿ëÇÏ¿© °¡Á®¿Â »ö»óÀ» »èÁ¦ÇÏÁö ¸¶½Ê½Ã¿À.

»ö»ó ¸ðµ¨Àº SWT »ö»ó ¸ðµ¨ Ç׸ñ¿¡¼­ ÀÚ¼¼È÷ ¼³¸íÇÕ´Ï´Ù.

À̹ÌÁö

SWT¿¡¼­ À̹ÌÁö¸¦ ó¸®ÇÒ ¶§ Image, ImageData ¹× ImageLoader Ŭ·¡½º¸¦ »ç¿ëÇÕ´Ï´Ù.

ImageData´Â »ç¿ëµÈ »ö»ó °ªÀ» ¼³¸íÇÏ´Â PaletteData Ŭ·¡½º¸¦ »ç¿ëÇÏ¿© À̹ÌÁöÀÇ ½ÇÁ¦ Çȼ¿À» ³ªÅ¸³À´Ï´Ù. ImageData´Â ÀåÄ¡ ¹× Ç÷§Æû¿¡ µ¶¸³ÀûÀÎ À̹ÌÁö ¼³¸íÀÔ´Ï´Ù.

ImageLoader´Â ImageData¸¦ ´Ù¸¥ ÆÄÀÏ Çü½ÄÀ¸·Î ·Îµå SWT¿¡¼­´Â ÇöÀç BMP(Windows ºñÆ®¸Ê), ICO(Windows ¾ÆÀÌÄÜ), JPEG, GIF ¹× PNG À̹ÌÁö Çü½ÄÀÇ ·Îµå

Image´Â ±×¸®±â API¿¡ »ç¿ëµÈ À̹ÌÁö¸¦ ³ªÅ¸³»´Â ½ÇÁ¦ ±×·¡ÇÈ ¿ÀºêÁ§Æ®ÀÔ´Ï´Ù. ƯÁ¤ Display¿¡ ´ëÇÑ À̹ÌÁö¸¦ ÀÛ¼ºÇϽʽÿÀ. ´ÙÀ½°ú °°Àº ¿©·¯ °¡Áö ¹æ¹ýÀ¸·Î À̹ÌÁö¸¦ ¸¸µé ¼ö ÀÖ½À´Ï´Ù.

Image¸¦ ¸¸µç ¹æ¹ý°ú´Â »ó°ü¾øÀÌ À̸¦ »èÁ¦ÇØ¾ß ÇÕ´Ï´Ù.

±×·¡ÇÈ ¿ÀºêÁ§Æ® ¶óÀÌÇÁ »çÀÌŬ

SWT¿¡¼­ ±×¸®±â¿¡ »ç¿ëÇÑ ´ëºÎºÐÀÇ ±×·¡ÇÈ ¿ÀºêÁ§Æ®´Â ±âº» OS¿¡ ÀÚ¿øÀ» ÇÒ´çÇÏ°í ¸í½ÃÀûÀ¸·Î »èÁ¦ÇØ¾ß ÇÕ´Ï´Ù. ÀÌÀü¿¡ ¼³¸íÇÑ µ¿ÀÏÇÑ ´ëüÀûÀÎ ±ÔÄ¢ÀÌ ¿©±â¿¡ Àû¿ëµË´Ï´Ù. »ý¼ºÀÚ¸¦ »ç¿ëÇÏ¿© ¸¸µç °æ¿ì À̸¦ »èÁ¦ÇØ¾ß ÇÕ´Ï´Ù. ´Ù¸¥ °÷¿¡¼­ ¾×¼¼½ºÇÒ °æ¿ì¿¡´Â »èÁ¦ÇÏÁö ¸¶½Ê½Ã¿À.

ÀÛ¼º

±×·¡ÇÈ ÄÁÅØ½ºÆ®, ±Û²Ã, »ö»ó ¹× À̹ÌÁö µî°ú °°Àº ±×·¡ÇÈ ¿ÀºêÁ§Æ®´Â ¸¸µéÀÚ¸¶ÀÚ OS¿¡ ÇÒ´çµË´Ï´Ù. ±×·¡ÇÈ ¿ÀºêÁ§Æ® »ç¿ëÀ» À§ÇÑ °èȹ ¹æ¹ý¿¡ µû¶ó ±×·¡ÇÈ ¿ÀºêÁ§Æ®¸¦ ÀÛ¼ºÇÏ´Â ½Ã±â°¡ °áÁ¤µË´Ï´Ù.

ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­ ¸¹ÀÌ »ç¿ëÇÏ´Â ±×·¡ÇÈ ¿ÀºêÁ§Æ®ÀÇ °æ¿ì À§ÁöÆ®(widget)¸¦ ¸¸µé ¶§ ±×·¡ÇÈ ¿ÀºêÁ§Æ®¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. »ö»ó°ú ±Û²ÃÀÇ °æ¿ì¿¡´Â ÁÖ·Î ÀÌ¿Í °°Àº ¹æ¹ýÀ» »ç¿ëÇÕ´Ï´Ù. ´Ù¸¥ °æ¿ì¿¡´Â ÁøÇà Áß¿¡ ±×·¡ÇÈ ¿ÀºêÁ§Æ®¸¦ ¸¸µå´Â °ÍÀÌ ´õ Àû´çÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, À§ÁöÆ®(widget) À̺¥Æ® Çڵ鷯 Áß Çϳª·Î ±×·¡ÇÈ ÄÁÅØ½ºÆ®¸¦ ÀÛ¼ºÇÏ¿© ÀϺΠ°è»êÀ» ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.

»ç¿ëÀÚ Á¤ÀÇ À§ÁöÆ®(widget)¸¦ ±¸ÇöÇÒ °æ¿ì ±×·¡ÇÈ ¿ÀºêÁ§Æ®¸¦ Ç×»ó »ç¿ëÇÑ´Ù¸é ÀϹÝÀûÀ¸·Î »ý¼ºÀÚ¿¡ ±×·¡ÇÈ ¿ÀºêÁ§Æ®¸¦ ÇÒ´çÇϽʽÿÀ. ±×·¡ÇÈ ¿ÀºêÁ§Æ®¸¦ Ç×»ó »ç¿ëÇÏÁö ¾Ê°Å³ª ±×·¡ÇÈ ¿ÀºêÁ§Æ®°¡ ÀϺΠ¼Ó¼ºÀÇ »óÅ¿¡ µû¶ó ´Þ¶óÁú °æ¿ì ½Å¼ÓÈ÷ ÇÒ´çÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÆäÀÎÆÃ

±×·¡ÇÈ ¿ÀºêÁ§Æ®¸¦ ÇÒ´çÇßÀ¸¸é ÀÌÁ¦ ÆäÀÎÆ®ÇÒ Áغñ°¡ µÇ¾ú½À´Ï´Ù. Ç×»ó ÆäÀÎÆ® ¸®½º³Ê ¾È¿¡ ÆäÀÎÆ®ÇϽʽÿÀ. ´Ù¸¥ À̺¥Æ®¿¡ ÀÀ´äÇϸ鼭 ÆäÀÎÆ®ÇÒ °æ¿ì´Â °ÅÀÇ ¾ø½À´Ï´Ù. ƯÈ÷ »ç¿ëÀÚ Á¤ÀÇ À§ÁöÆ®(widget)¸¦ ±¸ÇöÇÒ °æ¿ì¿¡´Â ´õ¿í ±×·¸½À´Ï´Ù. ±×·¯³ª, ÀϹÝÀûÀ¸·Î ÀÌ ¹æ¹ýÀº ±ÇÀåµÇÁö ¾Ê½À´Ï´Ù. ´Ù¸¥ À̺¥Æ®¸¦ ó¸®ÇÏ´Â Áß¿¡ ÆäÀÎÆ®¸¦ ÇØ¾ßÇÒ °æ¿ì OS¿¡ ´Ù¸¥ ÆäÀÎÆ® À̺¥Æ®¸¦ ¸¸µå´Â redraw ¸Þ¼Òµå¸¦ ¸ÕÀú »ç¿ëÇØº¸½Ê½Ã¿À. ÆäÀÎÆ® ¸Þ¼Òµå ¿ÜºÎ¿¡¼­ ±×¸± °æ¿ì Ç÷§Æû ÃÖÀûÈ­°¡ ½ÇÆÐÇϰí À̺¥Æ® ´ë±â¿­ÀÇ º¸·ù ÁßÀÎ ÆäÀÎÆ® °³¼ö¿¡ µû¶ó ¹ö±×°¡ »ý±æ ¼öµµ ÀÖ½À´Ï´Ù.

ÆäÀÎÆ® À̺¥Æ®¸¦ ¼ö½ÅÇϸé À§ÁöÆ®(widget)¿¡ ±×¸®±â À§ÇØ ¹Ì¸® ±¸¼ºÇÑ GC°¡ Á¦°øµË´Ï´Ù. ÀÌ GC¸¦ »èÁ¦ÇÏÁö ¸¶½Ê½Ã¿À! ÀÌ GC¸¦ ¸¸µéÁö ¾Ê¾Ò½À´Ï´Ù.

À̺¥Æ®¸¦ ó¸®ÇÏ´Â ÁßÀ̳ª ±× Àü¿¡ ´Ù¸¥ ±×·¡ÇÈ ¿ÀºêÁ§Æ®¸¦ ÇÒ´çÇØ¾ß ÇÕ´Ï´Ù. ´ÙÀ½Àº org.eclipse.swt.examples.HelloWorld5 »ùÇÃÀ» ±âÁØÀ¸·Î ÀÌÀü¿¡ À§ÁöÆ®(widget)¸¦ ÀÛ¼ºÇÒ ¶§ »¡°£ »ö»óÀ» ÇÒ´çÇ߱⠶§¹®¿¡ ¿©±â¼­ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

shell.addPaintListener(new PaintListener () {
      public void paintControl(PaintEvent event){
         GC gc = event.gc;
         gc.setForeground(red);
         Rectangle rect = event.widget.getClientArea();
         gc.drawRectangle(rect.x + 10, rect.y + 10, rect.width - 20, rect.height - 20);
         gc.drawString(resHello.getString("Hello_world"), rect.x + 20, rect.y + 20);
      }
   });

»èÁ¦

ÇÒ´çÇß´ø ¸ðµç ±×·¡ÇÁ ¿ÀºêÁ§Æ®´Â »ç¿ëÀ» ¸¶ÃÆÀ¸¸é »èÁ¦ÇØ¾ß ÇÕ´Ï´Ù.

¿ÀºêÁ§Æ®¸¦ ¸¸µç ½ÃÁ¡¿¡ µû¶ó »èÁ¦ ½Ã±âµµ ´Þ¶óÁý´Ï´Ù. À§ÁöÆ®(widget)¸¦ ¸¸µé¸é¼­ ±×·¡ÇÈ ¿ÀºêÁ§Æ®¸¦ ¸¸µç °æ¿ì ÀϹÝÀûÀ¸·Î À§ÁöÆ®(widget)¿¡ »èÁ¦ ¸®½º³Ê¸¦ Ãß°¡Çϰí, À§ÁöÆ®(widget)¸¦ »èÁ¦ÇÑ °æ¿ì ±×·¡ÇÈÀ» »èÁ¦ÇÕ´Ï´Ù. ÆäÀÎÆ®Çϸ鼭 ¿ÀºêÁ§Æ®¸¦ ¸¸µç °æ¿ì ÆäÀÎÆ®°¡ ³¡³ª¸é ¿ÀºêÁ§Æ®¸¦ »èÁ¦ÇØ¾ß ÇÕ´Ï´Ù.

´ÙÀ½ ÄÚµå ½º´ÏÆê¿¡¼­´Â ¾à°£ ¼öÁ¤µÈ ¹öÀüÀÇ ÆäÀÎÆ® ¸®½º³Ê¸¦ º¸¿©ÁÝ´Ï´Ù. ÀÌ ¿¹¿¡¼­´Â ÆäÀÎÆ®Çϸ鼭 »ö»óÀ» ÇÒ´ç ¹× »èÁ¦ÇÕ´Ï´Ù.

shell.addPaintListener(new PaintListener () {
      public void paintControl(PaintEvent event){
         GC gc = event.gc;
         Color red = new Color(event.widget.getDisplay(), 0xFF, 0, 0);
         gc.setForeground(red);
         Rectangle rect = event.widget.getClientArea();
         gc.drawRectangle(rect.x + 10, rect.y + 10, rect.width - 20, rect.height - 20);
         gc.drawString(resHello.getString("Hello_world"), rect.x + 20, rect.y + 20);
         red.dispose();
      }
   });

Copyright IBM Corporation and others 2000, 2003.