À̺¥Æ®

Ç¥½Ã ¹× ÀϺΠÀ§ÁöÆ®(widget)¸¦ ÀÛ¼ºÇϰí ÀÀ¿ëÇÁ·Î±×·¥ÀÇ ¸Þ½ÃÁö ·çÇÁ¸¦ ½ÃÀÛÇÑ °æ¿ì ½ÇÁ¦ ÀÛ¾÷Àº ¾îµð¿¡¼­ ¹ß»ýÇմϱî? ´ë±â¿­¿¡¼­ À̺¥Æ®¸¦ Àоî¿Í¼­ À§ÁöÆ®(widget)¿¡ µð½ºÆÐÄ¡ÇÒ ¶§¸¶´Ù ½ÇÁ¦ ÀÛ¾÷ÀÌ ¹ß»ýÇÕ´Ï´Ù. ÀÀ¿ëÇÁ·Î±×·¥ ³í¸®ÀÇ ´ëºÎºÐÀº »ç¿ëÀÚ À̺¥Æ®¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î ±¸ÇöµË´Ï´Ù.

ÀÛ¼ºÇÑ À§ÁöÆ®(widget)¿¡ ¸®½º³Ê¸¦ Ãß°¡ÇÏ´Â °ÍÀÌ ±âº» ÆÐÅÏÀ̰í ÀûÀýÇÑ À̺¥Æ®´Â ½ÇÇàÇÒ ¸®½º³Ê Äڵ忡 ¹ß»ýÇÕ´Ï´Ù. ´ÙÀ½ÀÇ °£´ÜÇÑ ¿¹´Â org.eclipse.swt.examples.helloworld.HelloWorld3¿¡¼­ °³ÀÛÇÑ °ÍÀÔ´Ï´Ù.

      Display display = new Display ();
      Shell shell = new Shell (display);
      Label label = new Label (shell, SWT.CENTER);
   ...
shell.addControlListener(new ControlAdapter() {
      public void controlResized(ControlEvent e) {
      label.setBounds (shell.getClientArea ());
      }
   });

°¢ ¸®½º³Ê À¯Çü¸¶´Ù ¸®½º³Ê(XyzListener)¸¦ Á¤ÀÇÇÏ´Â ÀÎÅÍÆäÀ̽º, À̺¥Æ® Á¤º¸(XyzEvent)¸¦ Á¦°øÇϴ Ŭ·¡½º, ¸®½º³Ê¸¦ Ãß°¡ÇÏ´Â API ¸Þ¼Òµå(addXyzListener)°¡ ÀÖ½À´Ï´Ù. ¸®½º³Ê ÀÎÅÍÆäÀ̽º¿¡ Á¤ÀÇµÈ ¸Þ¼Òµå°¡ Çϳª ÀÌ»óÀÏ °æ¿ì, ¸®½º³Ê ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ°í ºó ¸Þ¼Òµå¸¦ Á¦°øÇÏ´Â ¾î´ðÅÍ(XyzAdapter)°¡ ÀÖ½À´Ï´Ù. ¸ðµç À̺¥Æ®, ¸®½º³Ê, ¾î´ðÅͰ¡ org.eclipse.swt.events ÆÐŰÁö¿¡ Á¤ÀǵǾî ÀÖ½À´Ï´Ù.

´ÙÀ½ Å×ÀÌºí¿¡¼­´Â »ç¿ëÇÒ ¼ö ÀÖ´Â À̺¥Æ®¿Í °¢ À̺¥Æ®¸¦ Áö¿øÇÏ´Â À§ÁöÆ®(widget)¸¦ ¿ä¾àÇÕ´Ï´Ù. À̺¥Æ®¸¦ µÎ °³ÀÇ ÀÏ¹Ý Ä«Å×°í¸® Áï, Á¦¾î¿¡ ´ëÇÑ ³í¸® Á¶ÀÛÀ» Ç¥½ÃÇÏ´Â »óÀ§ ·¹º§ À̺¥Æ®¿Í º¸´Ù ƯÁ¤ÇÑ »ç¿ëÀÚ »óÈ£ÀÛ¿ëÀ» ¼³¸íÇÏ´Â ÇÏÀ§ ·¹º§ À̺¥Æ®·Î ºÐÇÒÇÒ ¼ö ÀÖ½À´Ï´Ù. Ç÷§Æû¸¶´Ù ´Ù¸¦ ¼öµµ ÀÖ´Â ´ÙÁß ÇÏÀ§ ·¹º§ À̺¥Æ®·Î »óÀ§ ·¹º§ À̺¥Æ®¸¦ Ç¥½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇÏÀ§ ·¹º§ À̺¥Æ®´Â ÀϹÝÀûÀ¸·Î »ç¿ëÀÚ Á¤ÀÇ À§ÁöÆ®(widget) ±¸Çö¿¡¸¸ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.

»óÀ§ ·¹º§ À̺¥Æ®

À̺¥Æ® À¯Çü

¼³¸í

Activate, Deactivate Á¦¾î°¡ Ȱ¼ºÈ­ ¶Ç´Â ºñȰ¼ºÈ­µÉ ¶§ »ý¼ºµË´Ï´Ù.
Arm ¸Þ´º Ç׸ñÀÌ Á¦°øµË´Ï´Ù(°­Á¶Ç¥½ÃµÇ¾î ¼±ÅÃµÉ Áغñ°¡ µÊ).
Close â °ü¸®ÀÚ°¡ ¿äûÇÑ ´ë·Î ½©À» ´Ý½À´Ï´Ù.
DefaultSelection »ç¿ëÀÚ°¡ ±âº» ¼±Åà Á¶Ä¡¸¦ È£ÃâÇÏ¿© Ç׸ñÀ» ¼±ÅÃÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, Enter¸¦ ´©¸£°Å³ª Å×ÀÌºí¿¡¼­ ÇàÀ» µÎ ¹ø Ŭ¸¯ÇÕ´Ï´Ù.
Dispose ÇÁ·Î±×·¥ÀûÀ¸·Î ¶Ç´Â »ç¿ëÀÚ°¡ À§ÁöÆ®(widget)¸¦ ó¸®ÇÕ´Ï´Ù.
DragDetect »ç¿ëÀÚ°¡ °¡´ÉÇÑ ²ø±â Á¶ÀÛÀ» ½ÃÀÛÇß½À´Ï´Ù.
EraseItem TableItem ¶Ç´Â TreeItemÀÇ ¹è°æÀ» ±×¸³´Ï´Ù.
Expand, Collapse Æ®¸®ÀÇ Ç׸ñÀ» ÆîÄ¡°Å³ª Á¢½À´Ï´Ù.
Help »ç¿ëÀÚ°¡ À§ÁöÆ®(widget)¿¡ ´ëÇÑ µµ¿ò¸»À» ¿äûÇß½À´Ï´Ù. ¿¹¸¦ µé¾î, Windows¿¡¼­ F1 ۸¦ ´©¸£¸é ÀÌ·¸°Ô µË´Ï´Ù.
Iconify, Deiconify ½©ÀÌ ÃÖ¼ÒÈ­, ÃÖ´ëÈ­ ¶Ç´Â º¹¿øµÇ¾ú½À´Ï´Ù.
MeasureItem »ç¿ëÀÚ Á¤ÀÇ·Î ÀÛ¼ºµÈ TableItem ¶Ç´Â TreeItemÀÇ Å©±â¸¦ ¿äûÇÕ´Ï´Ù.
MenuDetect »ç¿ëÀÚ°¡ ÄÁÅØ½ºÆ® ¸Þ´º¸¦ ¿äûÇß½À´Ï´Ù.
Modify À§ÁöÆ®(widget)ÀÇ ÅØ½ºÆ®°¡ ¼öÁ¤µÇ¾ú½À´Ï´Ù.
Move, Resize ÇÁ·Î±×·¥ÀûÀ¸·Î ¶Ç´Â »ç¿ëÀÚ°¡ Á¦¾î À§Ä¡¸¦ º¯°æÇ߰ųª Á¦¾î Å©±â¸¦ Á¶Á¤Çß½À´Ï´Ù.
PaintItem TableItem ¶Ç´Â TreeItemÀÇ Àü°æÀ» ±×¸³´Ï´Ù.
Selection »ç¿ëÀÚ°¡ Á¦¾îÀÇ Ç׸ñÀ» ¼±ÅÃÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, Å×À̺íÀÇ ÇàÀ» ÇÑ ¹ø Ŭ¸¯Çϰųª Űº¸µå¸¦ »ç¿ëÇÏ¿© Ç׸ñÀ» Ž»öÇÕ´Ï´Ù.
SetData °¡»ó Å×À̺íÀ» »ç¿ëÇÒ ¶§ TableItem¿¡ µ¥ÀÌÅ͸¦ ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù.
Settings ½Ã½ºÅÛ ±Û²Ã ¶Ç´Â »ö»ó°ú °°Àº ¿î¿µ üÁ¦ Ư¼ºÀÌ º¯°æµÇ¾ú½À´Ï´Ù.
Show, Hide Á¦¾îÀÇ °¡½Ã¼ºÀÌ º¯°æµÇ¾ú½À´Ï´Ù.
Traverse »ç¿ëÀÚ°¡ Ű½ºÆ®·ÎÅ©¸¦ »ç¿ëÇÏ¿© Á¦¾î¸¦ ¹þ¾î³ª ¼øÈ¸¸¦ ½ÃµµÇϰí ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, À̽ºÄÉÀÌÇÁ ¶Ç´Â ÅÇ Å°°¡ ¼øÈ¸¿¡ »ç¿ëµË´Ï´Ù.
Verify À§ÁöÆ®(widget)ÀÇ ÅØ½ºÆ®°¡ ¼öÁ¤µË´Ï´Ù. ÀÌ À̺¥Æ®´Â ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ÅØ½ºÆ®¸¦ ¼öÁ¤Çϰųª ¼öÁ¤À» ¹æÁöÇÒ ¼ö ÀÖ´Â ±âȸ¸¦ Á¦°øÇÕ´Ï´Ù.

ÇÏÀ§ ·¹º§ À̺¥Æ®

À̺¥Æ® À¯Çü

¼³¸í

FocusIn, FocusOut Á¦¾î°¡ ÃÊÁ¡À» ȹµæÇ߰ųª À¯½ÇÇß½À´Ï´Ù.
KeyDown, KeyUp Á¦¾î¿¡ Űº¸µå ÃÊÁ¡ÀÌ ÀÖÀ» ¶§ »ç¿ëÀÚ°¡ Űº¸µå ۸¦ ´­·¶°Å³ª ÇØÁ¦Çß½À´Ï´Ù.
MouseDown, MouseUp, MouseDoubleClick »ç¿ëÀÚ°¡ Á¦¾î À§¿¡¼­ ¸¶¿ì½º¸¦ ´­·¶°Å³ª ÇØÁ¦Ç߰ųª ¶Ç´Â ¸¶¿ì½º¸¦ µÎ ¹ø Ŭ¸¯Çß½À´Ï´Ù.
MouseMove »ç¿ëÀÚ°¡ Á¦¾î¿¡¼­ ¸¶¿ì½º¸¦ À̵¿Çß½À´Ï´Ù.
MouseEnter, MouseExit, MouseHover ¸¶¿ì½º°¡ ÀÔ·Â, Á¾·áµÇ¾ú°Å³ª ¶Ç´Â Á¦¾î À§¿¡ ¿Ã·Á ³õ¾Ò½À´Ï´Ù.
MouseWheel ¸¶¿ì½º ÈÙÀÌ È¸ÀüµÇ¾ú½À´Ï´Ù.
Paint Á¦¾î°¡ ¼Õ»óµÇ¾î ¸®ÆäÀÎÆÃÀÌ ÇÊ¿äÇÕ´Ï´Ù.

À¯ÇüÈ­µÇÁö ¾ÊÀº À̺¥Æ®

¾Õ¼­ ¼³¸íÇÑ À¯ÇüÈ­µÈ À̺¥Æ® ½Ã½ºÅÛ À̿ܿ¡ SWT´Â ÇÏÀ§ ·¹º§ÀÇ À¯ÇüÈ­µÇÁö ¾ÊÀº À§ÁöÆ®(widget) À̺¥Æ® ¸ÞÄ¿´ÏÁòÀ» Áö¿øÇÕ´Ï´Ù. À¯ÇüÈ­µÇÁö ¾ÊÀº ¸ÞÄ¿´ÏÁòÀº À̺¥Æ® À¯ÇüÀ» ½Äº°ÇÏ´Â »ó¼ö¿¡ µû¶ó ´Ù¸£¸ç ÀÌ »ó¼ö¿Í ÇÔ²² Á¦°øµÇ´Â ÀÏ¹Ý ¸®½º³Ê¸¦ Á¤ÀÇÇÕ´Ï´Ù. ±×·¯¸é ¸®½º³Ê¿¡¼­ "case style" ¸®½º³Ê¸¦ ±¸ÇöÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½ ½º´ÏÆê¿¡¼­´Â ÀÏ¹Ý À̺¥Æ® Çڵ鷯¸¦ Á¤ÀÇÇÏ°í ¿©·¯ °³ÀÇ ¸®½º³Ê¸¦ ½©¿¡ Ãß°¡ÇÕ´Ï´Ù.

   Shell shell = new Shell();
   Listener listener = new Listener() {
      public void handleEvent(Event e) {
         switch (e.type) {
            case SWT.Resize:
               System.out.println ("Resize received");
      break;
            case SWT.Paint:
               System.out.println ("Paint received");
      break;
            default:
               System.out.println("Unknown event received");
         }
      }
   };
shell.addListener(SWT.Resize, listener);
shell.addListener(SWT.Paint, listener);