SWT¿¡´Â ¿©·¯ °¡Áö ±â´ÉµéÀÌ Æ÷ÇԵǾî ÀÖÁö¸¸ ½Ã½ºÅÛÀÇ ÄÚ¾î ±â´ÉÀÎ À§ÁöÆ®(widget), ·¹À̾ƿô ¹× À̺¥Æ®¸¸ ¾Ë°í À־ À¯¿ëÇÏ°í °·ÂÇÑ ÀÀ¿ëÇÁ·Î±×·¥À» ±¸ÇöÇÒ ¼ö ÀÖ½À´Ï´Ù.
Ç÷§Æû Workbench È®ÀåÀ» »ç¿ëÇÏ¿© UI ¿ä¼Ò¸¦ Á¦°øÇÒ °æ¿ì Workbench¿¡¼ SWT ½ÃÀÛ ¸ÞÄ¿´ÏÁòÀ» ´ë½Å ó¸®ÇÕ´Ï´Ù.
Workbench ¿ÜºÎ¿¡¼ óÀ½ºÎÅÍ SWT ÀÀ¿ëÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ °æ¿ì SWTÀÇ ÀÀ¿ëÇÁ·Î±×·¥ ±¸Á¶¸¦ ´õ Àß ¾Ë°í ÀÖ¾î¾ß ÇÕ´Ï´Ù.
ÀϹÝÀûÀÎ µ¶¸³Çü SWT ÀÀ¿ëÇÁ·Î±×·¥ÀÇ ±¸Á¶´Â ´ÙÀ½°ú °°½À´Ï´Ù.
SWT ¼¼¼ÇÀ» ³ªÅ¸³»´Â µð½ºÇ÷¹À̸¦ ¸¸µì´Ï´Ù.
ÀÀ¿ëÇÁ·Î±×·¥ÀÇ ±âº» â ¿ªÇÒÀ» ÇÏ´Â Çϳª ÀÌ»óÀÇ ½©À» ¸¸µì´Ï´Ù.
½© ³»ºÎ¿¡¼ ÇÊ¿äÇÑ ´Ù¸¥ À§ÁöÆ®(widget)¸¦ ¸¸µì´Ï´Ù.
À§ÁöÆ®(widget)ÀÇ Å©±â¿Í ±âŸ ÇÊ¿äÇÑ »óŸ¦ ÃʱâÈÇÕ´Ï´Ù. ó¸®ÇØ¾ß ÇÒ À§ÁöÆ®(widget) À̺¥Æ®¿¡ ´ëÇÑ ¸®½º³Ê¸¦ µî·ÏÇÕ´Ï´Ù.
½© âÀ» ¿±´Ï´Ù.
Á¾·á Á¶°ÇÀÌ ¹ß»ýÇÒ ¶§±îÁö(´ë°³´Â ±âº» ½© âÀ» »ç¿ëÀÚ°¡ ´ÝÀ» ¶§±îÁö) À̺¥Æ® µð½ºÆÐĪ ·çÇÁ¸¦ ½ÇÇàÇÕ´Ï´Ù.
µð½ºÇ÷¹À̸¦ »èÁ¦ÇÕ´Ï´Ù.
´ÙÀ½ ÄÚµå ½º´ÏÆêÀº 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)´Â ¸Ç À§ ·¹º§ ½©ÀÇ (Á÷Á¢ ¶Ç´Â °£Á¢) ÇÏÀ§ Ç׸ñÀ¸·Î ¸¸µé¾î Áý´Ï´Ù.
Composite À§ÁöÆ®(widget)´Â ÇÏÀ§¸¦ °¡Áú ¼ö ÀÖ´Â À§ÁöÆ®(widget)ÀÔ´Ï´Ù.
ÀÀ¿ëÇÁ·Î±×·¥ âÀÌ Ç¥½ÃµÇ¸é À̸¦ À§ÁöÆ®(widget) Æ®¸®³ª ·çÆ®°¡ ½©ÀÎ °èÃþ ±¸Á¶·Î »ý°¢ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÀ¿ëÇÁ·Î±×·¥ÀÇ º¹Àâµµ¿¡ µû¶ó ½©ÀÇ ´ÜÀÏ ÇÏÀ§, ¿©·¯ ÇÏÀ§ ¶Ç´Â ÇÏÀ§¸¦ °¡Áø ÁßøµÈ °èÃþÀÇ º¹ÇÕÀÌ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù.
ÀÀ¿ëÇÁ·Î±×·¥¿¡¼ À§ÁöÆ®(widget)¸¦ ¸¸µé¸é SWT´Â ¹Ù·Î ±âº» Ç÷§Æû À§ÁöÆ®(widget)¸¦ ¸¸µì´Ï´Ù. ±×·¯¸é ±âº» OS À§ÁöÆ®(widget)°¡ ÀÖ´ÂÁö ¿©ºÎ¿¡ µû¶ó ´Ù¸£°Ô ÀÛµ¿ÇÏ´Â Äڵ尡 ÇÊ¿äÇÏÁö ¾Ê½À´Ï´Ù. ¶ÇÇÑ ´ëºÎºÐÀÇ À§ÁöÆ®(widget) µ¥ÀÌÅ͸¦ ŸŶ¿¡ º¹Á¦Çϱ⠺¸´Ù´Â Ç÷§Æû °èÃþ¿¡ º¸°üÇÒ ¼öµµ ÀÖ½À´Ï´Ù. À̰ÍÀº ŸŶÀÇ À§ÁöÆ®(widget) ¶óÀÌÇÁ »çÀÌŬ °³³äÀÌ ±âº» GUI ½Ã½ºÅÛÀÇ ±ÔÄ¢À» ÁؼöÇØ¾ß ÇÔÀ» ÀǹÌÇÕ´Ï´Ù.
´ëºÎºÐÀÇ 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¿¡¼´Â dispose() ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© ƯÁ¤ ŸŶ ¿ÀºêÁ§Æ®¿Í ¿¬°üµÈ ÀÚ¿øÀ» »èÁ¦ÇÕ´Ï´Ù.
±âº» ±ÔÄ¢Àº ¿ÀºêÁ§Æ®¸¦ ¸¸µé °æ¿ì À̸¦ »èÁ¦ÇØ¾ß ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. ÀÌ °³³äÀ» ´õ ÀÚ¼¼È÷ ¼³¸íÇϴ ƯÁ¤ÇÑ ±âº» ±ÔÄ¢Àº ´ÙÀ½°ú °°½À´Ï´Ù.
»ý¼ºÀÚ¸¦ »ç¿ëÇÏ¿© À§ÁöÆ®(widget)³ª ±×·¡ÇÈ ¿ÀºêÁ§Æ®¸¦ ¸¸µå´Â °æ¿ì »ç¿ëÀ» ³¡¸¶ÃÆÀ» ¶§ À̸¦ ¼öµ¿À¸·Î »èÁ¦ÇØ¾ß ÇÕ´Ï´Ù.
»ý¼ºÀÚ¸¦ »ç¿ëÇÏÁö ¾Ê°í À§ÁöÆ®(widget)³ª ±×·¡ÇÈ ¿ÀºêÁ§Æ®¸¦ °¡Á®¿Â °æ¿ì ÇÒ´çÇÏÁö ¾Ê¾ÒÀ¸¹Ç·Î ¼öµ¿À¸·Î »èÁ¦ÇÏÁö ¾Ê½À´Ï´Ù.
À§ÁöÆ®(widget)³ª ±×·¡ÇÈ ¿ÀºêÁ§Æ®¿¡ ´ëÇÑ ÂüÁ¶¸¦ ´Ù¸¥ ¿ÀºêÁ§Æ®·Î Àü´ÞÇÑ °æ¿ì À̸¦ »ç¿ëÇÏ´Â Áß¿¡´Â »èÁ¦ÇÏÁö ¾Êµµ·Ï ÁÖÀÇÇϽʽÿÀ. ÀÌ ±ÔÄ¢¿¡ ´ëÇÑ »çÇ×Àº À̹ÌÁö »ç¿ëÀ» À§ÇÑ Ç÷¯±×ÀÎ ÆÐÅÏ¿¡¼ ÀÌ¹Ì »ìÆìº¸¾Ò½À´Ï´Ù.
»ç¿ëÀÚ°¡ ½©À» ´ÝÀ¸¸é ½©°ú ÇØ´çÇÏ´Â ¸ðµç ÇÏÀ§ À§ÁöÆ®(widget)°¡ ¹Ýº¹ÀûÀ¸·Î »èÁ¦µË´Ï´Ù. ÀÌ °æ¿ì À§ÁöÆ®(widget) ÀÚü¸¦ »èÁ¦ÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ±×·¯³ª ÇØ´ç À§ÁöÆ®(widget)¿Í ÇÔ²² ÇÒ´çµÈ ¸ðµç ±×·¡ÇÈ ÀÚ¿øÀº »èÁ¦ÇØ¾ß ÇÕ´Ï´Ù.
À§ÁöÆ®(widget) Áö¼Ó½Ã°£ µ¿¾È »ç¿ëÇϱâ À§ÇØ ±×·¡ÇÈ ¿ÀºêÁ§Æ®¸¦ ¸¸µç °æ¿ì À§ÁöÆ®(widget)¸¦ »èÁ¦Çϸé ÇØ´ç ±×·¡ÇÈ ¿ÀºêÁ§Æ®µµ »èÁ¦ÇØ¾ß ÇÕ´Ï´Ù. ÀÌ ÀÛ¾÷À» ¼öÇàÇÏ·Á¸é À§ÁöÆ®(widget)¿¡ ´ëÇÑ »èÁ¦ ¸®½º³Ê¸¦ µî·ÏÇϰí dispose À̺¥Æ®¸¦ ¹Þ¾ÒÀ» ¶§ ±×·¡ÇÈ ¿ÀºêÁ§Æ®¸¦ »èÁ¦ÇÕ´Ï´Ù.
ÀÌ ±ÔÄ¢¿¡ ÇϳªÀÇ ¿¹¿Ü°¡ Àִµ¥, Rectangle ¹× Point°°Àº ´Ü¼øÇÑ µ¥ÀÌÅÍ ¿ÀºêÁ§Æ®¿¡¼´Â ¿î¿µ üÁ¦ ÀÚ¿øÀ» »ç¿ëÇÏÁö ¾Ê´Â´Ù´Â °ÍÀÔ´Ï´Ù. À̵éÀº dispose() ¸Þ¼Òµå¸¦ °®Áö ¾ÊÀ¸¹Ç·Î À̵éÀ» »èÁ¦ÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. Àǽɽº·¯¿ï °æ¿ì ƯÁ¤ Ŭ·¡½º¿¡ ´ëÇÑ javadocÀ» È®ÀÎÇϽʽÿÀ.