SWT Study
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

Contents

1 ¼Ò°³
1.1 SWT¿¡ ´ëÇØ¼­
2 SWT ÇÁ·Î±×·¡¹Ö È­°æ ±¸Ãà ¹× ¸Àº¸±â
2.1 ȯ°æ ±¸Ãà
2.2 Hello World¸¦ ÅëÇØ¼­ ÀÍÈ÷´Â Eclipse+SWT °³¹ß
2.2.1 ÇÁ·ÎÁ§Æ® »ý¼º
2.2.2 ÄÚµå »ý¼º
2.2.3 ½ÇÇà ½Ã۱â
3 SWT ÇÁ·Î±×·¡¹Ö ÀϹÝ
3.1 SWT ¾ÖÇø®ÄÉÀ̼ÇÀÇ ±âº» ±¸Á¶
3.2 SWT ¾ÖÇø®ÄÉÀÌ¼Ç Á¦ÀÛ
3.3 SWT ÆÐŰÁöµé
3.4 ´ÙÀ̾ó·Î±×
3.5 Widgets
3.5.1 À§Á¬ À̺¥Æ®
3.5.2 ÀÚÁÖ»ç¿ëÇÏ´Â À§Á¬
3.5.3 ¹öư
3.5.4 slider, scale, progressBar À§Á¬
3.5.5 ÅØ½ºÆ® À§Á¬
3.5.6 List À§Á¬
3.5.7 Sash À§Á¬
3.6 Composite À§Á¬
3.6.1 Table À§Á¬
4 °ü·Ã À§Å°

1 ¼Ò°³

SmartDicÇÁ·ÎÁ§Æ®¸¦ ÁøÇàÇϱâ À§Çؼ­ java(12)ÀÇ GUI(12)¶óÀ̺귯¸®ÀÎ SWT(12)¸¦ ÇÊ¿ä·Î ÇÑ´Ù. ¾ÆÁ÷±îÁö SWT¸¦ ´Ù·ç¾î º»ÀûÀÌ ¾øÀ¸¹Ç·Î ÇÁ·ÎÁ§Æ®ÀÇ ¿øÇÒÇÑ ÁøÇàÀ» À§Çؼ­ SWT¿¡ ´ëÇÑ ½ºÅ͵𸦠¼öÇàÇϱâ·Î Çß´Ù.



¿¹Á¦µéÀº Eclipse(12)¸¦ ÀÌ¿ëÇØ¼­ ÀÛ¼ºÇϰí Å×½ºÆ®Çϵµ·Ï ÇϰڴÙ. EclipseÀÇ »ç¿ë¹æ¹ýÀº SWT ½ºÅ͵ð À§Å°¸¦ Âü°íÇϱ⠹ٶõ´Ù.

1.1 SWT¿¡ ´ëÇØ¼­

java¿¡¼­ GUI¸¦ Áö¿øÇϱâ À§ÇÑ µµ±¸·Î sun¿¡¼­ °³¹ßÇÑ SwingÀÌ ³Î¸® »ç¿ëµÇ°í ÀÖ¾ú´Âµ¥, IBM¿¡¼­ ÅëÇÕ°³¹ß Ç÷§ÆûÀÎ Eclipse(12)¸¦ °³¹ßÇϸ鼭 Swing ´ë½Å ÀÚüÀûÀ¸·Î °³¹ßÇÑ GUI¶óÀ̺귯¸®¸¦ Á¦ÀÛÇÑ´Ù. ÀÌ°Ô SWT ÀÌ´Ù.

  • Swing : J2SE¸¦ À§ÇÑ GUI ŸŶ
  • SWT : IBMÀÇ °ø°³ ÇÁ·ÎÁ§Æ®ÀÎ Eclipse Ç÷§ÆûÀÇ Á¦ÀÛÀ» À§ÇØ º°µµ·Î °³¹ßµÈ ¶óÀ̺귯¸®

SWT´Â Standard Widget ToolkitÀÇ ÁÙÀÓ¸»·Î °¢ ¿î¿µÃ¼Á¦ÀÚü¿¡¼­ Á¦°øµÇ´Â À§Á¬ ŸŶÀ» ÅëÇÕÇÑ ±×·¡ÇÈ ¶óÀ̺귯¸®´Ù. ÀÌ´Â °¢ Ÿ°Ù Ç÷¿Æû¿¡ ²Ï³ª ÀÇÁ¸ÀûÀÌ µÉ ¼öµµ ÀÖÀ½À» ÀǹÌÇÏÁö¸¸, OSµ¶¸³ÀûÀÎ API¸¦ Á¦°øÇÔÀ¸·Î½á ÀÌ ¹®Á¦¸¦ ÇØ°áÇϰí ÀÖ´Ù. À̵é API´Â ¸ñÇ¥°¡ µÇ´Â ¿î¿µÃ¼Á¦ ½Ã½ºÅÛÀÇ GUIÄڵ带 wrapperÇÔÀ¸·Î½á °³¹ßÀÚ ÀÔÀå¿¡¼­´Â ¿î¿µÃ¼Á¦¿¡ ½Å°æ¾²Áö ¾Ê°í µ¿ÀÏÇÑ Äڵ带 À¯ÁöÇÒ ¼ö ÀÖ°Ô µÈ´Ù.

µ¡ºÙ¿© ¼³¸íÇÏÀÚ¸é, SwingÀº ¸ðµç À§Á¬ÀÌ ¿î¿µÃ¼Á¦¿Í º°°³¸¦ »ç¿ëÇϴµ¥(ÀÚ¹ÙÀÇ ¸ðÅä°¡ One make All use ¾Æ´Ï´ø°¡) ±×·¸±â¶§¹®¿¡ SwingÀÇ GUI´Â À¢Áö ´«¿¡ ³¸¼³°í ¾î»öÇØ º¸ÀÌ´Â ¸éÀÌ ÀÖ¾î¿Ô´Ù. ±×·¯³ª SWT´Â °¡´ÉÇÑÇÑ »ç¿ëÇÒ ¼öÀÖ´Â ¸ðµç Native WidgetÀº »ç¿ëÇϰí, ±×·¯ÇÏÁö ¾Ê´Â ºÎºÐ¸¸ ÀÚ¹ÙÀÇ ÀÚü À§Á¬À» »ç¿ëÇÑ´Ù. ¶§¹®¿¡ ÃÖ´ëÇÑ ±× OSÀÇ Native GUI¿Í ºñ½ÁÇÑ ¸ð½ÀÀ» º¸¿©Áִ°ÍÀÌ´Ù.(Native¿¡¼­ Á¦°øÇÏÁö ¾Ê´Â ÀÚü À§Á¬±îÁö Æ÷ÇÔÇϹǷΠ¶§·Ð ´õ À̻ܼöµµ ÀÖ°Ú´Ù. ¹°·Ð ¹Ý´ëÀÎ °æ¿ìµµ ÀÖ°ÚÁö¸¸).

±×·³ ÀÚ¹Ù°¡ ½Ã½ºÅÛ¿¡ µ¶¸³ÀûÀÌÁö ¾ÊÀº°Ô ¾Æ´Ñ°¡? ÇÏ°í ¹Ý¹®ÇÒÁö ¸ð¸£Áö¸¸ À§¿¡ ¼³¸íµÈ ¹Ù¿Í°°ÀÌ °øÅëÀûÀÎ API¸¦ »ç¿ëÇϹǷμ­ (Abstract Layer¶ó°í º¼ ¼ö µµ ÀÖ°Ú´Ù) OS°¡ ´Ù¸£´Ù°í ÇØ¼­ ¼Ò½ºÄÚµåÀÇ º¯°æÀ» ÇÊ¿ä·Î ÇÏÁö ¾Ê´Â°ÍÀÌ´Ù. (VMÂ÷¿ø¿¡¼­ Native Widget¸¦ ÇØ´ç API·Î ·¦ÇÎÇØÁֹǷÎ)

´ÙÀ½Àº ÇöÀç java¿¡¼­ »ç¿ëÁßÀÎ GUI¶óÀ̺귯¸®¿¡ ´ëÇÑ ºñ±³´Ù.
Component SWT Swing AWT
Button X X X
Advanced Button X X
Label X X X
List X X X
Progress Bar X X
Sash X X
Scale X X
Sash X X
Slider X X
Text Area X X X
Advanced Text Area X X
Tree X X
Menu X X
Tab Folder X X X
Toolbar X X
Spinner X X
Tabler X X X
Advanced Table X X

2 SWT ÇÁ·Î±×·¡¹Ö È­°æ ±¸Ãà ¹× ¸Àº¸±â

2.1 ȯ°æ ±¸Ãà

¿ì¼±Àº °³¹ßȯ°æÀ» ±¸ÃàÇØ¾ß ÇÑ´Ù. ±âº» °³¹ßȯ°æÀº Linux, JDK1.4±â¹ÝÀÌ¸ç ½ºÅ͵𸦠À§Çؼ­ Eclipse¸¦ ¼³Ä¡Çϱâ·Î Çß´Ù. ¾Æ¹«·¡µµ SWT°¡ EclipseÀÇ ÀϺηΠ°³¹ßµÈ Ãø¸éÀÌ Àֱ⠶§¹®¿¡ ÀÚ¿¬½º·¯¿î ÇнÀÀ» À§Çؼ­ Eclipse°¡ ÇÊ¿äÇÏ´Ù°í ÆÇ´ÜµÇ¾ú±â ¶§¹®ÀÌ´Ù.

Eclipse´Â http://www.eclipse.org¿¡¼­ ÃֽŹöÀü 3.0 (04/7/27ÀÏ ÇöÀç)¹ÞÀ» ¼ö ÀÖ´Ù. ¼³Ä¡´Â ¾ÐÃàǪ´Â °É·Î ³¡ÀÌ´Ù. ÀÌŬ¸³½º¿Í ÇÔ²² SWT°³¹ß°ú °ü·ÃµÈ ¶óÀ̺귯¸®µµ ¹Þ¾Æ¾ß ÇÑ´Ù. ¿ª½Ã À§ »çÀÌÆ®¿¡¼­ ¹ÞÀ» ¼ö ÀÖ´Ù. SWT¶óÀ̺귯¸®¸¦ ¹ÞÀº´ÙÀ½ ÀÌŬ¸³½º¸¦ ¼³Ä¡ÇÑ °÷¿¡ Àû´çÇÑ µð·ºÅ丮¸¦ ¸¸µé¾î¼­ ¾ÐÃàÀ» Ç®µµ·Ï ÇÏÀÚ. ÇÊÀÚÀÇ °æ¿ì ÀÌŬ¸³½º ¼³Ä¡µð·ºÅ丮´Â /usr/eclipse¿¡ SWT´Â /usr/eclipse/jar¿¡ Ç®¾ú´Ù.

´ÙÀ½Àº ÀÌŬ¸³½º¸¦ ÅëÇÑ °³¹ß ¸ð½ÀÀÌ´Ù.


2.2 Hello World¸¦ ÅëÇØ¼­ ÀÍÈ÷´Â Eclipse+SWT °³¹ß

ÀÚ¹ÙÇ÷¿Æû¿¡¼­ÀÇ °³¹ßÀÌ ±×¸® Àͼ÷Ä¡ ¾ÊÀº °ü°è·Î ¿ì¼± SWT¹öÁ¯ÀÇ Hello worldÃâ·Â ¾ÖÇø®ÄÉÀ̼ÇÀ» ¸¸µé¾î º¸±â·Î Çß´Ù.

2.2.1 ÇÁ·ÎÁ§Æ® »ý¼º
ÀÌŬ¸³½º°¡ ½ÇÇàµÇ¾ú´Ù¸é, »õ·Î¿î File > New > Project ¸¦ ÀÌ¿ëÇØ¼­ »õ·Î¿î ÇÁ·ÎÁ§Æ®¸¦ »ý¼ºÇØ¾ß ÇÑ´Ù. ±×·¯¸é ¾Æ·¡¿Í °°Àº Project »ý¼º Wizard°¡ ¶ß°Ô µÈ´Ù.


¿©±â¿¡¼­ java > java project ¸¦ ¼±ÅÃÇϰí Next ¹öưÀ» Ŭ¸¯Çϵµ·Ï ÇÑ´Ù. ÀÌÁ¦ ÇÁ·ÎÁ§Æ®ÀÇ À̸§À» ¼±ÅÃÇØ ÁÖ¾î¾ß Çϴµ¥, HelloWorld·Î ÇÏÀÚ. ±×´ÙÀ½ Finish ¹öưÀ» ´©¸¥´Ù. ±×·³ ¾Æ·¡ÀÇ ±×¸²°ú °°ÀÌ HelloWorld ÇÁ·ÎÁ§Æ®°¡ »ý¼ºµÈ°É È®ÀÎÇÒ ¼ö ÀÖ´Ù.


2.2.2 ÄÚµå »ý¼º
ÇÁ·ÎÁ§Æ®µµ ¸¸µé¾îÁö°í ÇßÀ¸´Ï ÀÌÁ¦ Äڵ带 »ý¼ºÇØ º¸±â·Î ÇÏÀÚ. HelloWorld ÇÁ·ÎÁ§Æ® À̸§À» ¸¶¿ì½º·Î Ŭ¸¯ÇÑÈÄ ¿À¸¥ÂÊ ¹öưÀ» Ŭ¸¯ÇÏ¸é ÆË¾÷¸Þ´º°¡ ¶ß´Âµ¥ ¿©±â¿¡¼­ New > Class¸¦ ¼±ÅÃÇϵµ·Ï ÇÑ´Ù. ±×·¯¸é Java Class »ý¼ºÈ­¸éÀÌ ³ª¿À´Âµ¥ Name¿¡ HelloWorld¸¦ ³Ö°í Finish¹öưÀ» Ŭ¸¯Çؼ­ »õ·Î¿î Ŭ·¡½º¸¦ ¸¸µé¾î ³»µµ·Ï ÇÑ´Ù.

±×·¯¸é ¾Æ·¡¿Í °°ÀÌ HelloWorld.java ¿¡µðÅÍ È­¸éÀÌ »ý¼ºµÈ°É È®ÀÎÇÒ ¼ö ÀÖ´Ù.


ÀÌÁ¦ Äڵ带 ¿Ï¼ºÇϵµ·Ï ÇÏÀÚ. ´ÙÀ½Àº HelloWorldÃâ·ÂÀ» À§ÇÑ ÄÚµå´Ù.
import org.eclipse.swt.widgets.*; 
import org.eclipse.swt.*; 
     
 
public class HelloWorld{ 
  public static void main(String[] args) { 
      Display display = new Display(); 
      Shell shell = new Shell(display); 
      Label label = new Label(shell, SWT.NONE); 
    label.setText("Hello World!"); 
     
    shell.pack(); 
    label.pack(); 
      shell.open(); 
      while(!shell.isDisposed()) 
          if(!display.readAndDispatch()) 
              display.sleep(); 
           
      display.dispose(); 
      label.dispose(); 
  } 
} 
 

±×µ¥ ¸î¸î¶óÀÎÀ» º¸¸é »¡°£»ö ¹ØÁÙÀÌ ±×¾îÁ® ÀÖ´Â °ÍÀ» º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ÀÌ´Â Äڵ忡 ¹®Á¦°¡ ÀÖ´Ù´Â °Çµ¥, ¿ì¸®°¡ swt°ü·Ã ÆÐŰÁö¸¦ Áö¿øÇÒ ¼ö ÀÖµµ·Ï Æ÷ÇÔ½ÃŰÁö ¾Ê¾Ò±â ¶§¹®¿¡ ¹ß»ýÇÏ´Â ¿¡·¯´Ù. C·Î ¸»ÇÏÀÚ¸é -l"¶óÀ̺귯¸®" ¸¦ ÇÏ¿© ¶óÀ̺귯¸®¸¦ ¸µÅ·ÇÏÁö ¾ÊÀº°Í°ú ºñ½ÁÇÏ´Ù°í º¼ ¼ö ÀÖ°Ú´Ù.

À̹®Á¦ÀÇ ÇØ°áÀ» À§Çؼ­´Â ÇÁ·ÎÁ§Æ®¿¡ swt¿Í °ü·ÃµÈ JARÆÄÀÏÀ» Ãß°¡½ÃÄÑÁà¾ß ÇÑ´Ù. Ãß°¡½ÃŰ´Â ¹æ¹ýÀº : ÇÁ·ÎÁ§Æ® À̸§À» ¼±ÅÃÇÏ°í ¸¶¿ì½º ¿ÞÂÊ ¹öư Ŭ¸¯ÈÄ Properties¸¦ Ŭ¸¯Çϵµ·Ï ÇÑ´Ù. ¿©±â¿¡¼­ java Build Path > Libraries¸¦ ¼±ÅÃÇϵµ·Ï ÇÑ´Ù. ±×´ÙÀ½ Add External Jars¸¦ Ŭ¸¯Çؼ­ SWT°ü·Ã JARÆÄÀÏÀ» Ãß°¡½ÃÄÑÁÖ¸é µÈ´Ù.


2.2.3 ½ÇÇà ½Ã۱â
ÀÌÁ¦ ½ÇÇà½ÃŰ´Â Àϸ¸ ³²¾Ò´Ù. ¸¶Âù°¡Áö·Î ¿ì¼± HelloWorld ÇÁ·ÎÁ§Æ®¸¦ ¼±ÅÃÇÑ´ÙÀ½ Run > Run À» ¼±ÅÃÇϵµ·Ï ÇÏÀÚ.

±×·¯¸é ´ÙÀ½°ú Runȯ°æ ¼³Á¤Ã¢ÀÌ ¶á´Ù. ÀÌ È­¸éÀ» ÅëÇØ¼­ ¿ì¸®´Â °¢Á¾ ½ÇÇà ÀÎÀÚ¿Í È¯°æº¯¼ö¿Í °°Àº ½ÇÇàȯ°æÀ» ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. CÄÚµå·Î ºÎÅÍ ½ÇÇàÆÄÀÏÀ» ¸¸µé¶§ °¡Àå ¸¶Áö¸·À¸·Î ÇÏ´Â ÀÏÀÌ ÇÊ¿äÇÑ ¿ÀºêÁ§Æ®³ª ¶óÀ̺귯¸®¸¦ ¸µÅ©ÇÏ´Â ÀÛ¾÷ÀÌ ÀÖ´Ù. ¸¶Âù°¡Áö·Î javaȯ°æ¿¡¼­µµ ÀÌ·¯ÇÑ ÀÛ¾÷ÀÌ ÇÊ¿ä·Î ÇÑ´Ù. ¿ì¸®°¡ ¸¸µç Hello WorldÇÁ·Î±×·¥ÀÇ °æ¿ì SWTÆÐŰÁö¸¦ »ç¿ëÇϰí ÀÖÀ¸¹Ç·Î SWT¶óÀ̺귯¸®¸¦ »ç¿ëÇ϶ó°í ¾Ë·ÁÁÙ Çʿ䰡 ÀÖ´Ù.

À̰ÍÀº ´ÙÀ½°ú °°ÀÌ VM arguments ¿¡ SWT¶óÀ̺귯¸®ÀÇ °æ·Î¸¦ ¸í½ÃÇØÁÜÀ¸·Î½á ¾Ë·ÁÁÙ ¼ö ÀÖ´Ù. °æ·Î´Â ÀÚ½ÅÀÇ eclipse ¼³Ä¡ µð·ºÅ丮¿¡ µû¶ó ´Þ¶óÁú ¼ö ÀÖ´Ù.


swt°ü·Ã ¶óÀ̺귯¸®ÀÇ °æ·Î´Â ¸®´ª½º¸¦ ±âÁØÀ¸·Î ./eclipse/plugins/org.eclipse.swt.gtk_3.0.0/os/linux/x86ÀÌ´Ù. Âü°íÇϱ⠹ٶõ´Ù.

ÀÌÁ¦ Run ¹öưÀ» Ŭ¸¯Çؼ­ ½ÇÇàÇϵµ·Ï ÇÏÀÚ. ´ÙÀ½°ú °°Àº ½ÇÇà°á°ú¹°À» È®ÀÎÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.


3 SWT ÇÁ·Î±×·¡¹Ö ÀϹÝ

3.1 SWT ¾ÖÇø®ÄÉÀ̼ÇÀÇ ±âº» ±¸Á¶

SWT ¾ÖÇø®ÄÉÀ̼ÇÀº ºí·°±¸Á¶¸¦ °¡Áö¸ç Display, Shell, WidgetÀÇ ±âº» ºí·°µé·Î ÀÌ·ç¾îÁø´Ù. Dispalys´Â À̺¥Æ® loop¸¦ °ü¸®Çϰí UI ¾²·¹µå¿Í ´Ù¸¥ ¾²·¹µåµé°£ÀÇ Åë½ÅÀ» Á¦¾îÇÑ´Ù. ShellÀº OSÀÇ À©µµ¿ì ¸Þ´ÏÀú¿¡ ÀÇÇØ¼­ »ý¼ºµÇ´Â À©µµ¿ì âÀ» °ü¸®ÇÑ´Ù. ¸ðµç SWT ¾ÖÇø®ÄÉÀ̼ÇÀº Àû¾îµµ ÇϳªÀÇ Dispaly¿Í Çϳª ȤÀº ±× ÀÌ»óÀÇ Shell ÀνºÅϽº¸¦ ÇÊ¿ä·Î ÇÑ´Ù.

http://www.developer.com/img/articles/2004/03/25/figure_01.gif

À§ ±×¸²Àº SWT ¾ÖÇø®ÄÉÀ̼ÇÀÇ ´ë·«ÀûÀÎ ±¸¼ºÀ» ¼­·Î ´Ù¸¥ °üÁ¡À» ÅëÇØ¼­ º¸¿©ÁÖ°í ÀÖ´Ù. ù¹øÂ° ´ÙÀÌ¾Æ ±×·¥Àº UI °´Ã¼ÀÇ »ó¼Ó°ü°è¸¦ ³ªÅ¸³»°í ÀÖ´Ù. µÎ¹øÂ° ´ÙÀÌ¾Æ ±×·¥Àº UI °´Ã¼ÀÇ ÄÁÅÂÀÌ³Ê ±¸Á¶Ã¼¸¦ º¸¿©ÁÖ°í ÀÖ´Ù. ¼¼¹øÂ° ´ÙÀÌ¾Æ ±×·¥Àº ¸¸µé¾îÁø UI¸¦ º¸¿©ÁØ´Ù.

¸¸¾à ¾ÖÇø®ÄÉÀ̼ÇÀÌ ´ÙÁß ¾²·¹µå¸¦ ÀÌ¿ëÇÑ´Ù¸é °¢°¢ÀÇ ¾²·¹µå´Â ÀÚ½ÅÀÇ Display ÀνºÅϽº¸¦ ¸¸µé°Ô µÈ´Ù. ÇÁ·Î±×·¡¸Ó´Â Display.getCurrent()¸Þ¼­µå¸¦ ÀÌ¿ëÇØ¼­ Ãֱ٠Ȱ¼ºÈ­µÈ DispalyÀÇ ÀνºÅϽº¸¦ °¡Á®¿Ã ¼ö ÀÖ´Ù.

ShellÀº ¿î¿µÃ¼Á¦¿¡¼­ À©µµ¿ì¸¦ ³ªÅ¸³»±â À§Çؼ­ »ç¿ëµÈ´Ù. shellÀº maximized, normail, minimized ÇüŸ¦ °¡Áú¼ö ÀÖ´Ù. shell µÎ°¡Áö ŸÀÔÀÌ ÀÖ´Ù. Çϳª´Â top-level shell·Î ÀÚ½ÄÀ» »ý¼ºÇϸç DisplayÀÇ ¸ÞÀÎ À©µµ¿ì°¡ µÈ´Ù. ´Ù¸¥ Çϳª´Â dialog shell·Î ´Ù¸¥ shell°ú µ¶¸³µÈ´Ù.

shellÀÇ Å¸ÀÔÀº ½©ÀÇ »ý¼ºÀÚ¿¡ ÀÇÇØ¼­ ³Ñ°ÜÁö´Â style bit °ª¿¡ ÀÇÁ¸ÀûÀÌ´Ù. ±âº»ÀûÀ¸·Î ½©Àº DialogShell ŸÀÔÀÌ µÈ´Ù. ÀÌ´Â ¾Æ¹«·± ÀÎÀÚ ¾øÀÌ ¸¸µé°æ¿ì DialogShellÀÌ ¸¸µé¾îÁø´Ù´Â ¶æÀÌ´Ù.

¸î¸î À§Á¬ÀÇ Æ¯¼º(properties)´Â ¹Ýµå½Ã »ý¼º½Ã°£¿¡ ¼³Á¤µÇ¾î¾ß ÇÑ´Ù. ÀÌ·¯ÇÑ À§Á¬ Ư¼ºÀ» style bits¶ó°í ºÎ¸¥´Ù. Style bits´Â SWT Ŭ·¡½º¿¡ »ó¼ö·Î Á¤ÀǵǾî ÀÖ´Ù. ¿¹¸¦µéÀÚ¸é Button button = new Button(shell, <styleBits>)Çü½ÄÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù. sytle bits´Â OR¿¬»êÀÚ |¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù. ¸¸¾à Å׵θ®°¡ ÀÖ´Â ÀԷ¹öưÀ» ¸¸µé±â¸¦ ¿øÇÑ´Ù¸é SWT.PUSH | SWT.BORDER ÇØÁÖ¸é µÈ´Ù.

3.2 SWT ¾ÖÇø®ÄÉÀÌ¼Ç Á¦ÀÛ

SWT ¾ÖÇø® ÄÉÀ̼ÇÀº ´ÙÀ½°ú °°Àº ¼ø¼­·Î ¸¸µé¾î Áø´Ù.
  • Display »ý¼º
  • Çϳª ÀÌ»óÀÇ shell »ý¼º
  • shellÀÇ ·¹À̾ƿô ¼³Á¤
  • shell¿¡ Æ÷Ç﵃ À§Á¬ »ý¼º
  • shell windowsÀ» ¿¬´Ù.
  • event dispatching loop ÀÛ¼º
  • displayÀÇ ¹èÄ¡

´ÙÀ½Àº SWT ¾ÖÇø®ÄÉÀ̼ÇÀÇ ÀϹÝÀûÀÎ ±¸¼ºÀÌ´Ù.
import org.eclipse.swt.layout.RowLayout; 
import org.eclipse.swt.widgets.Display; 
import org.eclipse.swt.widgets.Shell; 
 
public class SliderExample 
{ 
    public static void main(String args[]) 
    { 
        Display display = new Display();     // 1 
        Shell shell = new Shell(display);    // 2 
        shell.setLayout( new RowLayout());   // 3 
        // ------------------------------- 
        // ¿©±â¿¡ Àû´çÇÑ Äڵ带 ³Ö´Â´Ù.  
        // ------------------------------- 
        shell.pack(); 
        shell.open();                        // 4 
        while( !shell.isDisposed())          // 5 
        { 
            if(!display.readAndDispatch())  
            display.sleep(); 
        } 
        display.dispose();                   // 6  
    } 
} 
 

À§ ¿¹Á¦´Â ½ÇÁ¦ Äڵ尡 ¾ø±â ¶§¹®¿¡ ºñ¾îÀÖ´Â À©µµ¿ì¸¦ »ý¼ºÇÑ´Ù. À̸¦Å׸é SWT¾ÖÇø®ÄÉÀÌ¼Ç Á¦ÀÛÀ» À§ÇÑ ÅÛÇø´ ÄÚµåÁ¤µµ·Î »ý°¢ÇÏ¸é µÈ´Ù.

  1. ¸ðµç SWT¾ÖÇø®ÄÉÀ̼ÇÀº Dispaly¿Í
  2. Çϳª ÀÌ»óÀÇ ShellÀ» ÇÊ¿ä·Î ÇÑ´Ù. shellÀº °´Ã¼ÀÇ Á¶ÇÕÀÌ´Ù.
  3. ¸¸¾à layoutÀ» ÀâÁö ¾Ê´Â´Ù¸é, Ãß°¡µÈ À§Á¬Àº º¸ÀÌÁö ¾Ê°Ô µÈ´Ù.
  4. ¸¸µé¾îÁø shellÀ» ¿¬´Ù.
  5. À̺¥Æ® Çڵ鸵 ·çÇÁ¸¦ ¸¸µé°í GUI À̺¥Æ®¸¦ Àд´Ù.
  6. »ç¿ëµÇÁö ¾Ê´Â display¸¦ ¹ö¸°´Ù.

3.3 SWT ÆÐŰÁöµé

SWT´Â ¿©·¯°³ÀÇ ÆÐŰÁö·Î ±¸¼ºµÇ¾î ÀÖ´Ù. ÀÌµé ÆÐŰÁö¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº Eclipse API ¹®¼­¿¡ Á¤ÀǵǾî ÀÖ´Ù. ¿©±â¿¡¼­´Â Áß¿äÇÑ ÆÐŰÁöµéÀ» °£´ÜÇÏ°Ô ¼³¸íÇϵµ·Ï ÇϰڴÙ.

  • org.eclipse.swt : SWT Ŭ·¡½º¿¡ ÀÇÇØ¼­ »ç¿ëµÇ´Â »ó¼ö¿Í ¿¹¿Ü°ªµéÀÌ Á¤ÀǵǾî ÀÖ´Ù. SWTÆÐŰÁö´Â SWT, SWTException, SWTError 3°³ÀÇ Å¬·¡½º·Î ±¸¼ºµÇ¾î ÀÖ´Ù. SWT´Â keyboard, error, color, layout, text sylte, buttonµî°ú °°Àº °¡Àå ÀÚÁÖ »ç¿ëµÇ´Â ¶óÀ̺귯¸®µéÀ» Æ÷ÇÔÇϰí ÀÖ´Ù.
  • org.eclipse.swt.widgets : ÇÙ½É SWT À§Á¬ ÄÄÆ÷³ÍÆ®µé°ú À§Á¬À» Áö¿øÇϱâ À§ÇÑ ÀÎÅÍÆäÀ̽º¿Í Ŭ·¡½ºµéÀ» Æ÷ÇÔÇϰí ÀÖ´Ù.
  • org.eclipse.swt.events: SWT ÄÄÆ÷³ÍÆ®µé¿¡ ÀÇÇØ »ç¿ëµÇ´Â À̺¥Æ® ŸÀÔ°ú, ¸®½º³Ê, À̺¥Æ®µéÀ» Á¤ÀÇÇϰí ÀÖ´Ù. ÀÌ ÆÐŰÁö´Â Listener interfaces, Adapter class, Event class¸¦ Æ÷ÇÔÇϰí ÀÖ´Ù.
  • org.eclipse.swt.dnd : SWT À§Á¦¿¡¼­ drag-and-dropÀ» Áö¿øÇϱâ À§ÇÑ Å¬·¡½º¸¦ Æ÷ÇÔÇÑ´Ù.
  • org.eclipse.swt.layout : SWTÀ§Á¬ÀÇ ÀÚµ¿Å©±âº¯È­¿Í À§Ä¡ÁöÁ¤°ú °ü·ÃµÈ Ŭ·¡½º¸¦ Æ÷ÇÔÇÑ´Ù.
  • org.eclipse.swt.print : Ãâ·ÂÀ» À§ÇÑ Å¬·¡½º Æ÷ÇÔ
  • org.eclipse.swt.graphics : Á¡, ¼±, ¸é, »ö, Ä¿¼­, ÆùÆ®, Graphics contextµî À̹ÌÁö¿Í °ü·ÃµÈ Ŭ·¡½º¸¦ Á¦°øÇÑ´Ù.


3.4 ´ÙÀ̾ó·Î±×

´ÙÀ̾ó·Î±×´Â ¿î¿µÃ¼Á¦ÀÇ À©µµ¿ì ȯ°æ¿¡¼­ Áö¿øÇÏ´Â °ÍÀ» »ç¿ëÇÑ´Ù. ¿¹¸¦µé¾î ¸®´ª½º¶ó¸é GTK¿¡¼­ Áö¿øÇÏ´Â ´ÙÀ̾ó·Î±×¸¦ »ç¿ëÇÏ°Ô µÈ´Ù. SWTÀÇ ´ÙÀ̾ó·Î±×´Â Dialog Ŭ·¡½º·Î ºÎÅÍ ÆÄ»ýµÈ´Ù. dialog´Â À§Á¬ÀÌ ¾Æ´ÏÁö¸¸ À§Á¬À» Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù.

http://www.developer.com/img/articles/2004/03/25/figure_02.gif

¾î¶² ´ÙÀ̾ó·Î±×µéÀº properties ¸¦ Á¶Á¤ÇÒ ¼ö ÀÖ´Ù. ´ÙÀ̾ó·Î±×´Â ¾Æ·¡¿Í °°ÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
MessageBox messageBox =  
new MessageBox(shell, SWT.OK|SWT.CANCEL); 
if (messageBox.open() == SWT.OK) 
{ 
    System.out.println("Ok is pressed."); 
} 
 
°¢ ´ÙÀ̾ó·Î±×´Â open()¸Þ¼­µå¸¦ ÀÌ¿ëÇØ¼­ ´Ù¸¥ ŸÀÔÀ» ¸®ÅϹÞÀ» ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î¼­ MessageBox dialog´Â open()¸Þ¼­µå·Î ºÎÅÍ int °ªÀ» ¸®ÅϹ޴´Ù. ±×·¯¹Ç·Î °¢°¢ÀÇ ´ÙÀ̾ó·Î±× ¸¶´Ù ¸®ÅϵǴ ŸÀÔ¿¡ ¸Âµµ·Ï 󸮸¦ ÇØÁÖ¾î¾ß ÇÑ´Ù.

ColorDialog´Â »ö¼±Åà âÀ» º¸¿©Áִµ¥, RGB °´Ã¼¸¦ ¸®ÅÏÇÑ´Ù.

DirectoryDialog´Â µð·ºÅ丮 ¼±ÅÃÀ» À§ÇÑ Ã¢À» º¸¿©Áִµ¥, open()¸Þ¼­µå¸¦ »ç¿ëÇÒ °æ¿ì ¼±ÅÃµÈ µð·ºÅ丮ÀÇ À̸§(¹®ÀÚ¿­)À» ¸®ÅÏÇÑ´Ù.

Font dialog´Â ½Ã½ºÅÛ¿¡¼­ Á¦°øÇÏ´Â ¸ðµçÆùÆ®¿¡ ´ëÇÑ ¸ñ·ÏÀ» Á¦°øÇÏ°í ¼±ÅÃÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. FontData °´Ã¼°¡ ¸®ÅϵȴÙ.

FileDialog´Â ÆÄÀϼ±Åà âÀ» ¶ç¿î´Ù. ¿©±â¿¡ ´õÇØ¼­ È®ÀåÀÚ ÇÊÅÍ, °æ·Î ÇÊÅÍ, ÆÄÀÏÀ̸§ ÇÊÅ͵îÀ» Àû¿ëÇÒ ¼ö ÀÖ´Ù. ´ÙÀ̾ó·Î±×´Â ´ÙÀ½°ú °°Àº ŸÀÔÀ» °¡Áö°í ÀÖ´Ù.

SWT.OPEN Open ¹öưÀ» º¸¿©ÁØ´Ù. ÆÄÀÏÀ» ¿­°íÀÚ ÇÒ¶§ »ç¿ëÇÑ´Ù.
SWT.SAVE Save ¹öưÀ» º¸¿©ÁØ´Ù. ÆÄÀÏÀ» ÀúÀåÇÒ¶§ »ç¿ëÇÑ´Ù.

PrintDialog´Â ÇÁ¸°Æ®¿Í °ü·ÃµÈ ¿©·¯°¡Áö Á¶ÀÛÀ» ÇÒ ¼ö Àִ âÀ» º¸¿©ÁØ´Ù. open()¸Þ¼­µå¸¦ È£ÃâÇßÀ» °æ¿ì PrintData °´Ã¼¸¦ ¸®ÅÏÇÑ´Ù.

MessageBox ´ÙÀ̾ó·Î±×´Â »ç¿ëÀÚ¿Í »óÈ£ÀÛ¿ëÇϱâ À§Çؼ­ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ´ÙÀ̾ó·Î±×´Â ¸ñÀû¿¡ µû¶ó¼­ ¿©·¯°¡Áö ŸÀÔÀ» °¡Áú ¼ö Àִµ¥, ¾Æ·¡¿Í °°ÀÌ | ¿¬»êÀ» ÅëÇØ¼­ ´Ù¾çÇÑ Å¸ÀÔÀ» ¸¸µé¾î ³¾ ¼ö ÀÖ´Ù.
MessageBox messageBox = new MessageBox(shell, 
            SWT.OK| 
            SWT.CANCEL| 
            SWT.ICON_WARNING); 
            messageBox.setMessage("www.korayguclu.de"); 
            messageBox.open(); 
 
ÀÌ·¸°Ô ÇØ¼­ ¸¸µé¾îÁø ´ÙÀ̾ó·Î±×´Â ´ÙÀ½°ú °°ÀÌ º¸ÀÏ °ÍÀÌ´Ù. ¾Æ·¡ ±×¸²Àº ¸®´ª½º¿¡¼­ ½ÇÇà½ÃŲ °æ¿ì´Ù. http://www.joinc.co.kr/albums/album01/akl.png MessageBox¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´À ¾ÆÀÌÄÜÀº ¾Æ·¡¿¡ Á¤¸®ÇØ µÎ¾úÀ¸´Ï Âü°íÇϱ⠹ٶõ´Ù. || SWT.ICON_ERROR || http://www.developer.com/img/articles/2004/03/25/image_01.gif ||
SWT.ICON_INFORMATION http://www.developer.com/img/articles/2004/03/25/image_02.gif
SWT.ICON_QUESTION http://www.developer.com/img/articles/2004/03/25/image_03.gif
SWT.ICON_WARNING http://www.developer.com/img/articles/2004/03/25/image_04.gif
SWT.ICON_WORKING http://www.developer.com/img/articles/2004/03/25/image_02.gif

3.5 Widgets

À§Á¬Àº À©µµ¿ì¸¦ ±¸¼ºÇÏ´Â °øÅë GUI°´Ã¼´Ù. ¹öư, üũ¹Ú½º, ÆË¾÷¸Þ´º, ½½¶óÀ̵å¹Ù, ½ºÇɹڽº, ÅØ½ºÆ® ÀÔ·ÂâµîÀÌ ¿©±â¿¡ Æ÷ÇԵȴÙ.

SWT GUI °´Ã¼´Â widget°ú Control Ŭ·¡½º·Î ºÎÅÍ ÆÄ»ýµÈ´Ù. À§Á¬ °´Ã¼´Â ¸ðµç °øÅë GUIŬ·¡½º¸¦ À§ÇÑ ±âº» Ŭ·¡½º¿Í ¸Þ¼­µå¸¦ Á¤ÀÇÇϰí ÀÖ´Ù. Control Ŭ·¡½º´Â ¸ðµç windowed GUI Ŭ·¡½ºÀÇ ±âº» Ŭ·¡½º·Î À©µµ¿ì¿Í ´ÙÀ̾ó·Î±×ÀÇ display¿Í °ü·ÃµÈ Á¦¾î¸¦ ¸Ã´Â´Ù.

´ÙÀ½Àº À§Á¬ÀÇ °èÃþ±¸Á¶¸¦ ³ªÅ¸³½ ±×¸²ÀÌ´Ù.

http://www.developer.com/img/articles/2004/03/25/figure_04.gif

3.5.1 À§Á¬ À̺¥Æ®
3.5.2 ÀÚÁÖ»ç¿ëÇÏ´Â À§Á¬
http://www.developer.com/img/articles/2004/03/25/figure_05.gif

¸ðµç Control Ŭ·¡½º´Â border¸¦ °¡Áú ¼ö ÀÖ´Ù. border´Â SWT.BORDER »ó¼ö¸¦ ÀÌ¿ëÇØ¼­ Ãß°¡ ½Ãų ¼ö ÀÖ´Ù.

3.5.3 ¹öư
¹öưÀº ´Ù¾çÇÑ ½ºÅ¸ÀÏÀ» °¡Áö°í ÀÖÀ¸¸ç bit°ª¿¡ ÀÇÇØ¼­ ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. ¾Æ·¡ÀÇ Å×À̺íÀº ¹öư°ú ±× ½ºÅ¸ÀÏÀ» Á¤¸®ÇÑ Å×À̺íÀÌ´Ù.

»ó¼ö »ç¿ë¿¹ ¼³¸í
SWT.ARROW http://www.developer.com/img/articles/2004/03/25/image_05.gif popup¸Þ´ºµîÀ» À§Çؼ­ »ç¿ëÇÑ´Ù.
SWT.CHECK http://www.developer.com/img/articles/2004/03/25/image_06.gif üũ¹Ú½º
SWT.PUSH http://www.developer.com/img/articles/2004/03/25/image_07.gif Ǫ½¬¹öư
SWT.RADIO http://www.developer.com/img/articles/2004/03/25/image_08.gif ¶óµð¿À ¹öư
SWT.TOGGLE http://www.developer.com/img/articles/2004/03/25/image_06.gif Ǫ½¬¹öư°ú ºñ½ÁÇÏÁö¸¸ ¹öưÀ» ´©¸£¸é ÀÌÀüÀÇ ´©¸§¹öưÀº ¿ø»óÅ·ΠµÈ´Ù.

3.5.4 slider, scale, progressBar À§Á¬
scale´Â ¿¬¼ÓµÈ ¹üÀ§³»¿¡¼­ ƯÁ¤ÇÑ °ªÀ» ¼±ÅÃÇϱâ À§Çؼ­ »ç¿ëÇÏ´Â À§Á¬ÀÌ´Ù. ¹üÀ§´Â Scale Ŭ·¡½ºÀÇ setMinimum()°ú setMaximum()¸Þ¼­µå¸¦ ÀÌ¿ëÇØ¼­ Á¤ÇÒ ¼ö ÀÖ´Ù. ¼±ÅÃµÈ °ªÀº getSelection()¸Þ¼­µå¸¦ ÀÌ¿ëÇÏ¸é µÈ´Ù. scale´Â Çѹø¿¡ ÇϳªÀÇ °ª¸¸À» °¡Á®¿Ã ¼ö ÀÖ´Ù.

http://www.developer.com/img/articles/2004/03/25/figure_06.gif

»ý¼ºÀÚ¸¦ ÅëÇØ¼­ ³Ñ±â´Â ÀÎÀÚ¸¦ ÅëÇÏ¿© ´Ù¸¥ ¸ð¾çÀÇ scale¿Í sliderÀ§Á¬À» »ý¼ºÇÒ ¼ö ÀÖ´Ù. slider¿Í scale¸¦ À§Çؼ­ »ç¿ëµÇ´Â »ó¼ö´Â ¾Æ·¡¿Í °°´Ù.

SWT.HORIZONTAL ¼öÆòÀ¸·Î ¹èÄ¡
SWT.VERTICAL ¼öÁ÷À¸·Î ¹èÄ¡

¿É¼ÇÀ¸·Î SWT.BORDER »ó¼ö¸¦ ÀÌ¿ëÇØ¼­ scaleÁÖº¯¿¡ Å׵θ®¸¦ ¸¸µé¾î ÁÙ¼ö ÀÖ´Ù.
 final Slider slider = 
   new Slider(shell,SWT.VERTICAL); 
 slider.setMinimum(0); 
 slider.setMaximum(100); 
 slider.setIncrement(5); 
 slider.setPageIncrement(10); 
 slider.setSelection(25); 
 slider.addSelectionListener( 
  new SelectionAdapter() 
  { 
    public void widgetSelected(SelectionEvent e) 
    { 
      System.out.println("Selection:"+ 
                          slider.getSelection()); 
    } 
  } 
 ); 
 

ProgressBar À§Á¬Àº Slider, Scale À§Á¬°ú ºñ½ÁÇÏ´Ù. ±×·¯³ª ¼±ÅÃÀÌ ºÒ°¡´ÉÇÏ´Ù. À̰ÍÀº ¾î¶² ÀÛ¾÷ÀÇ ÁøÃ´Á¤µµ¸¦ ³ªÅ¸³»±â À§Çؼ­ »ç¿ëÇÑ´Ù. SWT.SMOOTH¿Í SWT.INTERMINATE »ó¼ö¸¦ ÀÌ¿ëÇØ¼­ ProgressBar À§Á¬À» º¯°æÇÒ ¼ö ÀÖ´Ù.

3.5.5 ÅØ½ºÆ® À§Á¬
Text À§Á¬Àº ÅØ½ºÆ® ÆíÁýâÀ» ¸¸µé±â À§Çؼ­ »ç¿ëÇÑ´Ù. Çʿ信 µû¶ó¼­´Â ÇϳªÀÇ ÆíÁýâ¿¡¼­ ¼­·Î ´Ù¸¥ ÆùÆ®¿Í »öÀ» µ¿½Ã¿¡ Ãâ·ÂÇÏ´Â ±â´ÉÀ» °¡Áø StypleText À§Á¬À» »ç¿ëÇÒ ¼öµµ ÀÖ´Ù.. ÀÌ À§Á¬À» »ç¿ëÇϸé Àü°æ»ö, ¹è°æ»ö°ú ÆùÆ®¸¦ ¹®ÀÚ´ÜÀ§·Î ÁöÁ¤ÇØ ÁÙ ¼ö ÀÖ´Ù.

http://www.developer.com/img/articles/2004/03/25/figure_07.gif

´ÙÀ½Àº text ÆíÁýâÀ» ¸¸µå´Â ¿¹Á¦ ÄÚµå´Ù.
import org.eclipse.swt.layout.RowLayout; 
import org.eclipse.swt.widgets.Display; 
import org.eclipse.swt.widgets.Shell; 
import org.eclipse.swt.widgets.MessageBox; 
import org.eclipse.swt.widgets.Slider; 
import org.eclipse.swt.SWT; 
import org.eclipse.swt.widgets.Text; 
 
public class SliderExample { 
     public static void main(String args[]) 
      { 
     Display display = new Display(); 
     Shell shell = new Shell(display); 
     shell.setLayout( new RowLayout()); 
     Text text = 
        new Text(shell, SWT.MULTI|SWT.WRAP); 
     text.setText("Hello world!!"); 
      
     shell.pack(); 
     shell.open(); 
     while( !shell.isDisposed()) 
        { 
          if(!display.readAndDispatch())  
          display.sleep(); 
        } 
     display.dispose(); 
      } 
} 
 

3.5.6 List À§Á¬
List widgetÀº ¸ñ·ÏÁß¿¡¼­ ÇϳªÀÇ ¿ø¼Ò¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ´Â ÀÎÅÍÆäÀ̽º¸£ Á¦°øÇÑ´Ù. ¸¸¾à¿¡ ¿ä¼ÒµéÁß Çϳª¸¦ ¼±ÅÃÇÏ°Ô µÇ¸é À̺¥Æ® ¸®½º³Ê¿¡°Ô ½ÅÈ£¸¦ º¸³»°Ô µÈ´Ù(QTÀÇ ½½·Ô,½Ã±×³Î °³³ä°ú ºñ½ÁÇÏ´Ù.). SWT.SINGLE¿Í SWT.MULTI¸¦ ÀÌ¿ëÇØ¼­ ´ÜÀÏ È¤Àº ´ÙÁß ¼±ÅÃÀÌ °¡´ÉÇÏ´Ù. ¸®½ºÆ® À§Á¬Àº ±âº»ÀûÀ¸·Î ½ºÅ©·ÑÀÌ °¡´ÉÇÑ À§Á¬ÀÓÀ¸·Î SWT.H_SCROLL°ú SWT.V_SCROLL »ó¼ö¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù.

http://www.developer.com/img/articles/2004/03/25/figure_08.gif

 final List list = new List(shell,SWT.MULTI); 
 for (int i = 1; i < 11; i++)  
 { 
   list.add(i+".)www.korayguclu.de"); 
 } 
 list.addSelectionListener( 
   new SelectionAdapter() 
   { 
     public void widgetSelected(SelectionEvent e) 
     { 
       List list = (List) e.getSource(); 
       String[] str = list.getSelection(); 
       for (int i = 0; i < str.length; i++) 
       { 
         System.out.println("Selection: "+str[i]); 
       } 
     } 
  } 
 ); 
 

3.5.7 Sash À§Á¬
Sash À§Á¬Àº ¿©·¯°³ÀÇ À§Á¬ÀÌ Æ÷ÇԵǾúÀ» ¶§, ¼­·ÎÀÇ ¿µ¿ªÀ» º¯°æÇÒ ¼ö ÀÖµµ·Ï ¸¸µé¾î ÁØ´Ù. ¸¶¿ì½º¸¦ Sash °æ°è¿¡ °¡Á®°¡¸é Á¿ì È­»ìÇ¥ ȤÀº »óÇÏ È­»ìÇ¥·Î ¹Ù²î¸é¼­ ¿µ¿ªÀÇ Å©±â¸¦ Á¶Á¤ÇÒ ¼ö ÀÖµµ·Ï ¸¸µé¾îÁØ´Ù.

http://www.developer.com/img/articles/2004/03/25/figure_09.gif

Button button = new Button(shell,SWT.PUSH); 
button.setText("Button0"); 
 
Sash sash = new Sash(shell, SWT.VERTICAL); 
 
Button button1 = new Button(shell,SWT.PUSH); 
button1.setText("Button1"); 
 

3.6 Composite À§Á¬

Composite À§Á¬Àº ´Ù¸¥ À§Á¬µéÀ» Æ÷ÇÔÇØ¼­ ±×·ìÈ­ÇÏ°í ¹è¿­½Ã۱â À§ÇÑ ÀÏÁ¾ÀÇ Container À§Á¬ÀÌ´Ù. ¶ÇÇÑ À§Á¬ »Ó¸¸ ¾Æ´Ï¶ó CompositeÀ§Á¬ Ŭ·¡½º ÀÚü¸¦ Æ÷ÇÔ½Ãų ¼öµµ ÀÖ´Ù. SWTÀÇ Composite´Â SwingÀÇ ±×°Í´Ù´Â ´Þ¸® add ¸Þ¼­µå¸¦ Á¦°øÇÏÁö ¾Ê´Â´Ù. ´ë½Å »ý¼ºÀÚ¸¦ ÅëÇØ¼­ ÇÊ¿äÇÑ À§Á¬À» ¹èÄ¡½ÃÄÑÁà¾ß¸¸ ÇÑ´Ù.

±×¸®°í ¾Æ·¡ ±×¸²¿¡¼­ ó·³ Shell ÀÚü¸¦ Æ÷ÇÔ½Ãų ¼öµµ ÀÖ´Ù.

http://www.developer.com/img/articles/2004/03/25/figure_10.gif

Composite À§Á¬Àº ½ºÅ©·Ñ °¡´ÉÇÑ À§Á¬À¸·Î »ó¼ö SWT.H_SCROLL °ú SWT.V_SCROLLÀ» ÀÌ¿ëÇØ¼­ ½ºÅ©·ÑÀ» Ãß°¡½Ãų ¼öµµ ÀÖ´Ù.

3.6.1 Table À§Á¬
Å×À̺í À§Á¬Àº ¹®ÀÚ¿­À̳ª À̹ÌÁö¸¦ Ãâ·ÂÇϱâ À§ÇÑ À§Á¬ÀÌ´Ù.

4 °ü·Ã À§Å°

  1. ÀÌŬ¸³½º ¹Ì´Ï»çÀÌÆ®
  2. ÀÌŬ¸³½º¿¡¼­ C/C++ °³¹ßȯ°æ ¸¸µé±â
  3. [http]»ùÇÃÄÚµå1
  4. [http]»ùÇÃÄÚµå2
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.