À§ÁöÆ®(widget)

SWT¿¡´Â ¿©·¯ °¡Áö ±â´ÉµéÀÌ Æ÷ÇԵǾî ÀÖÁö¸¸ ½Ã½ºÅÛÀÇ ÄÚ¾î ±â´ÉÀÎ À§ÁöÆ®(widget), ·¹À̾ƿô ¹× À̺¥Æ®¸¸ ¾Ë°í À־ À¯¿ëÇÏ°í °­·ÂÇÑ ÀÀ¿ëÇÁ·Î±×·¥À» ±¸ÇöÇÒ ¼ö ÀÖ½À´Ï´Ù.

À§ÁöÆ®(widget) ÀÀ¿ëÇÁ·Î±×·¥ ±¸Á¶

Ç÷§Æû Workbench È®ÀåÀ» »ç¿ëÇÏ¿© UI ¿ä¼Ò¸¦ Á¦°øÇÒ °æ¿ì Workbench¿¡¼­ SWT ½ÃÀÛ ¸ÞÄ¿´ÏÁòÀ» ´ë½Å ó¸®ÇÕ´Ï´Ù.

Workbench ¿ÜºÎ¿¡¼­ óÀ½ºÎÅÍ SWT ÀÀ¿ëÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ °æ¿ì SWTÀÇ ÀÀ¿ëÇÁ·Î±×·¥ ±¸Á¶¸¦ ´õ Àß ¾Ë°í ÀÖ¾î¾ß ÇÕ´Ï´Ù.

ÀϹÝÀûÀÎ µ¶¸³Çü SWT ÀÀ¿ëÇÁ·Î±×·¥ÀÇ ±¸Á¶´Â ´ÙÀ½°ú °°½À´Ï´Ù.

´ÙÀ½ ÄÚµå ½º´ÏÆêÀº org.eclipse.swt.examples.helloworld.HelloWorld2 ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­ °³ÀÛÇÑ °ÍÀÔ´Ï´Ù. ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­ "Hello World"¶ó´Â ¹®ÀÚ¿­¸¸ Ç¥½ÃÇϱ⠶§¹®¿¡ ´Ù¸¥ À§ÁöÆ®(widget) À̺¥Æ®¿¡ µî·ÏÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù.

   public static void main (String [] args) {
      Display display = new Display ();
      Shell shell = new Shell (display);
      Label label = new Label (shell, SWT.CENTER);
      label.setText ("Hello_world");
      label.setBounds (shell.getClientArea ());
      shell.open ();
      while (!shell.isDisposed ()) {
         if (!display.readAndDispatch ()) display.sleep ();
      }
      display.dispose ();
   }

Ç¥½Ã

µð½ºÇ÷¹ÀÌ´Â SWT¿Í ±âº» Ç÷§ÆûÀÇ GUI ½Ã½ºÅÛ °£ ¿¬°áÀ» ³ªÅ¸³À´Ï´Ù. Ç¥½Ã´Â ÁÖ·Î Ç÷§Æû À̺¥Æ® ·çÇÁ¸¦ °ü¸®Çϰí UI ½º·¹µå¿Í ´Ù¸¥ ½º·¹µå °£ÀÇ Åë½ÅÀ» Á¦¾îÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. UI ½º·¹µù ¹®Á¦¿¡ ´ëÇÑ Àüü ¼³¸íÀº Ŭ¶óÀ̾ðÆ®ÀÇ ½º·¹µù ¹®Á¦¸¦ ÂüÁ¶ÇϽʽÿÀ.

´ëºÎºÐÀÇ ÀÀ¿ëÇÁ·Î±×·¥ÀÇ °æ¿ì À§¿¡¼­ »ç¿ëÇÑ ÆÐÅÏÀ» µû¸¦ ¼ö ÀÖ½À´Ï´Ù. ´Ù¸¥ âÀ» ¸¸µé±â Àü¿¡ Ç¥½Ã¸¦ ÀÛ¼ºÇØ¾ß ÇÏ°í ½©À» ´ÝÀ» ¶§´Â Ç¥½Ã¸¦ »èÁ¦ÇØ¾ß ÇÕ´Ï´Ù. ´ÙÁß ½º·¹µå ÀÀ¿ëÇÁ·Î±×·¥À» ¼³°èÇÏ´Â °æ¿ì¸¦ Á¦¿ÜÇϸé Ç¥½Ã¿¡ ´ëÇØ ´õ ¸¹ÀÌ »ý°¢ÇÒ Çʿ䰡 ¾ø½À´Ï´Ù.

½©

½©Àº OS Ç÷§Æû â °ü¸®ÀÚ°¡ °ü¸®Çϴ "â"ÀÔ´Ï´Ù. ¸Ç À§ ·¹º§ÀÇ ½©Àº Ç¥½ÃÀÇ ÇÏÀ§·Î ÀÛ¼ºµÇ´Â ½©ÀÔ´Ï´Ù. ÀÌ Ã¢Àº »ç¿ëÀÚ°¡ ÀÀ¿ëÇÁ·Î±×·¥À» »ç¿ëÇϸ鼭 À̵¿, Å©±â Á¶Á¤, ÃÖ¼ÒÈ­, ÃÖ´ëÈ­Çϴ âÀÔ´Ï´Ù. º¸Á¶ ½©Àº ´Ù¸¥ ½©ÀÇ ÇÏÀ§·Î ¸¸µé¾îÁø ½©ÀÔ´Ï´Ù. ÀÌ Ã¢Àº ´ë°³ ´ëÈ­ »óÀÚ Ã¢À̳ª ´Ù¸¥ âÀÇ ÄÁÅØ½ºÆ®¿¡¼­¸¸ Á¸ÀçÇÏ´Â Àӽà âÀ¸·Î »ç¿ëµË´Ï´Ù.

»óÀ§ ¹× ÇÏÀ§

¸Ç À§ ·¹º§ÀÇ ½©ÀÎ °æ¿ì¸¦ Á¦¿ÜÇÏ¸é ¸ðµç À§ÁöÆ®(widget)¿¡´Â »óÀ§°¡ ÀÖ½À´Ï´Ù. ¸Ç À§ ·¹º§ÀÇ ½©¿¡´Â »óÀ§°¡ ¾øÁö¸¸, ¸ðµå ƯÁ¤ Ç¥½Ã¿Í °ü·ÃÇÏ¿© ÀÛ¼ºµË´Ï´Ù.  getDisplay()¸¦ »ç¿ëÇÏ¿© ÀÌ Ç¥½Ã¿¡ ¾×¼¼½ºÇÒ ¼ö ÀÖ½À´Ï´Ù.  ´Ù¸¥ ¸ðµç À§ÁöÆ®(widget)´Â ¸Ç À§ ·¹º§ ½©ÀÇ (Á÷Á¢ ¶Ç´Â °£Á¢) ÇÏÀ§ Ç׸ñÀ¸·Î ¸¸µé¾î Áý´Ï´Ù.  ´Ù¸¥ ¸ðµç À§ÁöÆ®(widget)´Â ¸Ç À§ ·¹º§ ½©ÀÇ (Á÷Á¢ ¶Ç´Â °£Á¢) ÇÏÀ§ Ç׸ñÀ¸·Î ¸¸µé¾î Áý´Ï´Ù.

Composite À§ÁöÆ®(widget)´Â ÇÏÀ§¸¦ °¡Áú

ÀÀ¿ëÇÁ·Î±×·¥ âÀÌ Ç¥½ÃµÇ¸é À̸¦ À§ÁöÆ®(widget) Æ®¸®³ª ·çÆ®°¡ ½©ÀÎ °èÃþ ±¸Á¶·Î »ý°¢ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÀ¿ëÇÁ·Î±×·¥ÀÇ º¹Àâµµ¿¡ µû¶ó ½©ÀÇ ´ÜÀÏ ÇÏÀ§, ¿©·¯ ÇÏÀ§ ¶Ç´Â ÇÏÀ§¸¦ °¡Áø ÁßøµÈ °èÃþÀÇ º¹ÇÕÀÌ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù.

À§ÁöÆ®(widget) ¶óÀÌÇÁ »çÀÌŬ

ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­ À§ÁöÆ®(widget)¸¦ ¸¸µé¸é SWT´Â ¹Ù·Î ±âº» Ç÷§Æû À§ÁöÆ®(widget)¸¦ ¸¸µì´Ï´Ù. ±×·¯¸é ±âº» OS À§ÁöÆ®(widget)°¡ ÀÖ´ÂÁö ¿©ºÎ¿¡ µû¶ó ´Ù¸£°Ô ÀÛµ¿ÇÏ´Â Äڵ尡 ÇÊ¿äÇÏÁö ¾Ê½À´Ï´Ù. ¶ÇÇÑ ´ëºÎºÐÀÇ À§ÁöÆ®(widget) µ¥ÀÌÅ͸¦ ŸŶ¿¡ º¹Á¦Çϱ⠺¸´Ù´Â Ç÷§Æû °èÃþ¿¡ º¸°üÇÒ ¼öµµ ÀÖ½À´Ï´Ù. À̰ÍÀº ŸŶÀÇ À§ÁöÆ®(widget) ¶óÀÌÇÁ »çÀÌŬ °³³äÀÌ ±âº» GUI ½Ã½ºÅÛÀÇ ±ÔÄ¢À» ÁؼöÇØ¾ß ÇÔÀ» ÀǹÌÇÕ´Ï´Ù.

À§ÁöÆ®(widget) ÀÛ¼º

´ëºÎºÐÀÇ GUI Ç÷§Æû¿¡¼­´Â À§ÁöÆ®(widget)¸¦ ÀÛ¼ºÇÒ ¶§ »óÀ§¸¦ ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù. ŸŶ À§ÁöÆ®(widget)¸¦ ÀÛ¼ºÇÏ°í ³ª¸é ¹Ù·Î SWT¿¡¼­ Ç÷§Æû À§ÁöÆ®(widget)¸¦ ¸¸µé±â ¶§¹®¿¡ À§ÁöÆ®(widget)ÀÇ »ý¼ºÀÚ¿¡¼­ »óÀ§ À§ÁöÆ®(widget)¸¦ ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù.

½ºÅ¸ÀÏ ºñÆ®

À§ÁöÆ®(widget)¸¦ ¸¸µé ¶§ OS¿¡¼­ ÀϺΠÀ§ÁöÆ®(widget) Ư¼ºÀ» ¼³Á¤ÇØ¾ß ÇÏ¸ç ±× ÈÄ¿¡´Â ÀÌ Æ¯¼ºÀ» º¯°æÇÒ ¼ö ¾ø½À´Ï´Ù. ¿¹¸¦ µé¾î, ¸ñ·Ï¿¡ ¼±ÅûçÇ×ÀÌ ÇÑ °³ ¶Ç´Â ¿©·¯ °³ ÀÖÀ» ¼ö ÀÖ°í, È­¸éÀ̵¿ ¸·´ë°¡ Àְųª ¾øÀ» ¼ö ÀÖ½À´Ï´Ù.

½ºÅ¸ÀÏÀ̶ó°í ÇÏ´Â ÀÌ·¯ÇÑ Æ¯¼ºÀº »ý¼ºÀÚ¿¡¼­ ¼³Á¤µÇ¾î¾ß ÇÕ´Ï´Ù. ¸ðµç À§ÁöÆ®(widget) »ý¼ºÀÚ´Â ¿øÇÏ´Â ¸ðµç ½ºÅ¸ÀÏÀÇ ºñÆ® °ü·Ã OR¸¦ ÁöÁ¤ÇÏ´Â int Àμö¸¦ ÇÊ¿ä·Î ÇÕ´Ï´Ù. ƯÁ¤ ½ºÅ¸ÀÏÀ» ÈùÆ®·Î °£ÁÖÇÏ´Â °æ¿ìµµ ÀÖ½À´Ï´Ù. ÀÌ´Â ¸ðµç Ç÷§Æû¿¡¼­ »ç¿ëÇÒ ¼ö ¾øÁö¸¸ Áö¿øÇÏÁö ¾Ê´Â Ç÷§Æû¿¡¼­´Â ¹«½ÃÇÏ°Ô µÊÀ» ÀǹÌÇÕ´Ï´Ù.

½ºÅ¸ÀÏ »ó¼ö´Â SWT Ŭ·¡½º¿¡ °ø¿ë Á¤Àû Çʵå·Î Á¸ÀçÇÕ´Ï´Ù. ¸ðµç À§ÁöÆ®(widget) Ŭ·¡½ºÀÇ Àû¿ë °¡´ÉÇÑ »ó¼ö ¸ñ·ÏÀº SWTÀÇ API ÂüÁ¶¼­¿¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù.

ÀÚ¿ø »èÁ¦

SWT ¹Ø¿¡ ÀÖ´Â OS Ç÷§Æû¿¡¼­´Â OS ÀÚ¿øÀ» ¸í½ÃÀûÀ¸·Î ÇÒ´ç ¹× »èÁ¦ÇØ¾ß ÇÕ´Ï´Ù. Ç÷§Æû ÀÀ¿ëÇÁ·Î±×·¥ ±¸Á¶¸¦ À§ÁöÆ®(widget) ŸŶ¿¡ ¹Ý¿µÇÑ´Ù´Â SWT ¼³°è öÇп¡ µû¶ó SWT¿¡¼­´Â ÇÒ´çÇÑ OS ÀÚ¿øÀ» ¸í½ÃÀûÀ¸·Î »èÁ¦ÇÒ °ÍÀ» ¿ä±¸ÇÕ´Ï´Ù. SWT¿¡¼­´Â, Widget.dispose() ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© ƯÁ¤ ŸŶ ¿ÀºêÁ§Æ®¿Í ¿¬°üµÈ ÀÚ¿øÀ» »èÁ¦ÇÕ´Ï´Ù.

±âº» ±ÔÄ¢Àº ¿ÀºêÁ§Æ®¸¦ ¸¸µé °æ¿ì À̸¦ »èÁ¦ÇØ¾ß ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. ÀÌ °³³äÀ» ´õ ÀÚ¼¼È÷ ¼³¸íÇϴ ƯÁ¤ÇÑ ±âº» ±ÔÄ¢Àº ´ÙÀ½°ú °°½À´Ï´Ù.

ÀÌ ±ÔÄ¢¿¡ ÇϳªÀÇ ¿¹¿Ü°¡ Àִµ¥,   Rectangle ¹× Point¿Í °°Àº ´Ü¼øÇÑ µ¥ÀÌÅÍ ¿ÀºêÁ§Æ®¿¡¼­´Â ¿î¿µ üÁ¦ ÀÚ¿øÀ» »ç¿ëÇÏÁö ¾Ê´Â´Ù´Â °ÍÀÔ´Ï´Ù. À̵éÀº dispose() ¸Þ¼Òµå¸¦ °®Áö ¾ÊÀ¸¹Ç·Î À̵éÀ» »èÁ¦ÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. Àǽɽº·¯¿ï °æ¿ì ƯÁ¤ Ŭ·¡½º¿¡ ´ëÇÑ javadocÀ» È®ÀÎÇϽʽÿÀ.

ÀÌ ÁÖÁ¦¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ¼³¸íÀº ¿î¿µ ÀÚ¿ø °ü¸®¸¦ ÂüÁ¶ÇϽʽÿÀ.

Copyright IBM Corporation and others 2000, 2003.