ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù. 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Àº ¸ðµç À§Á¬ÀÌ ¿î¿µÃ¼Á¦¿Í º°°³¸¦ »ç¿ëÇϴµ¥(ÀÚ¹ÙÀÇ ¸ðÅä°¡ One make All use ¾Æ´Ï´ø°¡) ±×·¸±â¶§¹®¿¡ SwingÀÇ GUI´Â À¢Áö ´«¿¡ ³¸¼³°í ¾î»öÇØ º¸ÀÌ´Â ¸éÀÌ ÀÖ¾î¿Ô´Ù. ±×·¯³ª SWT´Â °¡´ÉÇÑÇÑ »ç¿ëÇÒ ¼öÀÖ´Â ¸ðµç Native WidgetÀº »ç¿ëÇϰí, ±×·¯ÇÏÁö ¾Ê´Â ºÎºÐ¸¸ ÀÚ¹ÙÀÇ ÀÚü À§Á¬À» »ç¿ëÇÑ´Ù. ¶§¹®¿¡ ÃÖ´ëÇÑ ±× OSÀÇ Native GUI¿Í ºñ½ÁÇÑ ¸ð½ÀÀ» º¸¿©Áִ°ÍÀÌ´Ù.(Native¿¡¼ Á¦°øÇÏÁö ¾Ê´Â ÀÚü À§Á¬±îÁö Æ÷ÇÔÇϹǷΠ¶§·Ð ´õ À̻ܼöµµ ÀÖ°Ú´Ù. ¹°·Ð ¹Ý´ëÀÎ °æ¿ìµµ ÀÖ°ÚÁö¸¸).
±×·³ ÀÚ¹Ù°¡ ½Ã½ºÅÛ¿¡ µ¶¸³ÀûÀÌÁö ¾ÊÀº°Ô ¾Æ´Ñ°¡? ÇÏ°í ¹Ý¹®ÇÒÁö ¸ð¸£Áö¸¸ À§¿¡ ¼³¸íµÈ ¹Ù¿Í°°ÀÌ °øÅëÀûÀÎ API¸¦ »ç¿ëÇϹǷμ (Abstract Layer¶ó°í º¼ ¼ö µµ ÀÖ°Ú´Ù) OS°¡ ´Ù¸£´Ù°í ÇØ¼ ¼Ò½ºÄÚµåÀÇ º¯°æÀ» ÇÊ¿ä·Î ÇÏÁö ¾Ê´Â°ÍÀÌ´Ù. (VMÂ÷¿ø¿¡¼ Native Widget¸¦ ÇØ´ç API·Î ·¦ÇÎÇØÁֹǷÎ)
´ÙÀ½Àº ÇöÀç java¿¡¼ »ç¿ëÁßÀÎ GUI¶óÀ̺귯¸®¿¡ ´ëÇÑ ºñ±³´Ù.
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 ÀνºÅϽº¸¦ ÇÊ¿ä·Î ÇÑ´Ù. ![]()
À§ ±×¸²Àº 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 ¾ÖÇø® ÄÉÀ̼ÇÀº ´ÙÀ½°ú °°Àº ¼ø¼·Î ¸¸µé¾î Áø´Ù.
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¾ÖÇø®ÄÉÀÌ¼Ç Á¦ÀÛÀ» À§ÇÑ ÅÛÇø´ ÄÚµåÁ¤µµ·Î »ý°¢ÇÏ¸é µÈ´Ù.
3.3 SWT ÆÐŰÁöµé
SWT´Â ¿©·¯°³ÀÇ ÆÐŰÁö·Î ±¸¼ºµÇ¾î ÀÖ´Ù. ÀÌµé ÆÐŰÁö¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº Eclipse API ¹®¼¿¡ Á¤ÀǵǾî ÀÖ´Ù. ¿©±â¿¡¼´Â Áß¿äÇÑ ÆÐŰÁöµéÀ» °£´ÜÇÏ°Ô ¼³¸íÇϵµ·Ï ÇϰڴÙ.
3.4 ´ÙÀ̾ó·Î±×
´ÙÀ̾ó·Î±×´Â ¿î¿µÃ¼Á¦ÀÇ À©µµ¿ì ȯ°æ¿¡¼ Áö¿øÇÏ´Â °ÍÀ» »ç¿ëÇÑ´Ù. ¿¹¸¦µé¾î ¸®´ª½º¶ó¸é GTK¿¡¼ Áö¿øÇÏ´Â ´ÙÀ̾ó·Î±×¸¦ »ç¿ëÇÏ°Ô µÈ´Ù. SWTÀÇ ´ÙÀ̾ó·Î±×´Â Dialog Ŭ·¡½º·Î ºÎÅÍ ÆÄ»ýµÈ´Ù. dialog´Â À§Á¬ÀÌ ¾Æ´ÏÁö¸¸ À§Á¬À» Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù. ![]()
¾î¶² ´ÙÀ̾ó·Î±×µéÀº 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´Â ÆÄÀϼ±Åà âÀ» ¶ç¿î´Ù. ¿©±â¿¡ ´õÇØ¼ È®ÀåÀÚ ÇÊÅÍ, °æ·Î ÇÊÅÍ, ÆÄÀÏÀ̸§ ÇÊÅ͵îÀ» Àû¿ëÇÒ ¼ö ÀÖ´Ù. ´ÙÀ̾ó·Î±×´Â ´ÙÀ½°ú °°Àº ŸÀÔÀ» °¡Áö°í ÀÖ´Ù.
PrintDialog´Â ÇÁ¸°Æ®¿Í °ü·ÃµÈ ¿©·¯°¡Áö Á¶ÀÛÀ» ÇÒ ¼ö Àִ âÀ» º¸¿©ÁØ´Ù. open()¸Þ¼µå¸¦ È£ÃâÇßÀ» °æ¿ì PrintData °´Ã¼¸¦ ¸®ÅÏÇÑ´Ù.
MessageBox ´ÙÀ̾ó·Î±×´Â »ç¿ëÀÚ¿Í »óÈ£ÀÛ¿ëÇϱâ À§Çؼ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ´ÙÀ̾ó·Î±×´Â ¸ñÀû¿¡ µû¶ó¼ ¿©·¯°¡Áö ŸÀÔÀ» °¡Áú ¼ö Àִµ¥, ¾Æ·¡¿Í °°ÀÌ | ¿¬»êÀ» ÅëÇØ¼ ´Ù¾çÇÑ Å¸ÀÔÀ» ¸¸µé¾î ³¾ ¼ö ÀÖ´Ù. MessageBox messageBox = new MessageBox(shell,
SWT.OK|
SWT.CANCEL|
SWT.ICON_WARNING);
messageBox.setMessage("www.korayguclu.de");
messageBox.open();
ÀÌ·¸°Ô ÇØ¼ ¸¸µé¾îÁø ´ÙÀ̾ó·Î±×´Â ´ÙÀ½°ú °°ÀÌ º¸ÀÏ °ÍÀÌ´Ù. ¾Æ·¡ ±×¸²Àº ¸®´ª½º¿¡¼ ½ÇÇà½ÃŲ °æ¿ì´Ù. MessageBox¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ´À ¾ÆÀÌÄÜÀº ¾Æ·¡¿¡ Á¤¸®ÇØ µÎ¾úÀ¸´Ï Âü°íÇϱ⠹ٶõ´Ù. || SWT.ICON_ERROR || ||
3.5 Widgets
À§Á¬Àº À©µµ¿ì¸¦ ±¸¼ºÇÏ´Â °øÅë GUI°´Ã¼´Ù. ¹öư, üũ¹Ú½º, ÆË¾÷¸Þ´º, ½½¶óÀ̵å¹Ù, ½ºÇɹڽº, ÅØ½ºÆ® ÀÔ·ÂâµîÀÌ ¿©±â¿¡ Æ÷ÇԵȴÙ.
SWT GUI °´Ã¼´Â widget°ú Control Ŭ·¡½º·Î ºÎÅÍ ÆÄ»ýµÈ´Ù. À§Á¬ °´Ã¼´Â ¸ðµç °øÅë GUIŬ·¡½º¸¦ À§ÇÑ ±âº» Ŭ·¡½º¿Í ¸Þ¼µå¸¦ Á¤ÀÇÇϰí ÀÖ´Ù. Control Ŭ·¡½º´Â ¸ðµç windowed GUI Ŭ·¡½ºÀÇ ±âº» Ŭ·¡½º·Î À©µµ¿ì¿Í ´ÙÀ̾ó·Î±×ÀÇ display¿Í °ü·ÃµÈ Á¦¾î¸¦ ¸Ã´Â´Ù.
´ÙÀ½Àº À§Á¬ÀÇ °èÃþ±¸Á¶¸¦ ³ªÅ¸³½ ±×¸²ÀÌ´Ù. ![]() 3.5.1 À§Á¬ À̺¥Æ®3.5.2 ÀÚÁÖ»ç¿ëÇÏ´Â À§Á¬![]()
¸ðµç Control Ŭ·¡½º´Â border¸¦ °¡Áú ¼ö ÀÖ´Ù. border´Â SWT.BORDER »ó¼ö¸¦ ÀÌ¿ëÇØ¼ Ãß°¡ ½Ãų ¼ö ÀÖ´Ù. 3.5.3 ¹öư
¹öưÀº ´Ù¾çÇÑ ½ºÅ¸ÀÏÀ» °¡Áö°í ÀÖÀ¸¸ç bit°ª¿¡ ÀÇÇØ¼ ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. ¾Æ·¡ÀÇ Å×À̺íÀº ¹öư°ú ±× ½ºÅ¸ÀÏÀ» Á¤¸®ÇÑ Å×À̺íÀÌ´Ù.
3.5.4 slider, scale, progressBar À§Á¬
scale´Â ¿¬¼ÓµÈ ¹üÀ§³»¿¡¼ ƯÁ¤ÇÑ °ªÀ» ¼±ÅÃÇϱâ À§Çؼ »ç¿ëÇÏ´Â À§Á¬ÀÌ´Ù. ¹üÀ§´Â Scale Ŭ·¡½ºÀÇ setMinimum()°ú setMaximum()¸Þ¼µå¸¦ ÀÌ¿ëÇØ¼ Á¤ÇÒ ¼ö ÀÖ´Ù. ¼±ÅÃµÈ °ªÀº getSelection()¸Þ¼µå¸¦ ÀÌ¿ëÇÏ¸é µÈ´Ù. scale´Â Çѹø¿¡ ÇϳªÀÇ °ª¸¸À» °¡Á®¿Ã ¼ö ÀÖ´Ù. ![]()
»ý¼ºÀÚ¸¦ ÅëÇØ¼ ³Ñ±â´Â ÀÎÀÚ¸¦ ÅëÇÏ¿© ´Ù¸¥ ¸ð¾çÀÇ scale¿Í sliderÀ§Á¬À» »ý¼ºÇÒ ¼ö ÀÖ´Ù. slider¿Í scale¸¦ À§Çؼ »ç¿ëµÇ´Â »ó¼ö´Â ¾Æ·¡¿Í °°´Ù.
¿É¼ÇÀ¸·Î 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 À§Á¬À» »ç¿ëÇÒ ¼öµµ ÀÖ´Ù.. ÀÌ À§Á¬À» »ç¿ëÇϸé Àü°æ»ö, ¹è°æ»ö°ú ÆùÆ®¸¦ ¹®ÀÚ´ÜÀ§·Î ÁöÁ¤ÇØ ÁÙ ¼ö ÀÖ´Ù. ![]()
´ÙÀ½Àº 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 »ó¼ö¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù. ![]() 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 °æ°è¿¡ °¡Á®°¡¸é Á¿ì È»ìÇ¥ ȤÀº »óÇÏ È»ìÇ¥·Î ¹Ù²î¸é¼ ¿µ¿ªÀÇ Å©±â¸¦ Á¶Á¤ÇÒ ¼ö ÀÖµµ·Ï ¸¸µé¾îÁØ´Ù. ![]() 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 ÀÚü¸¦ Æ÷ÇÔ½Ãų ¼öµµ ÀÖ´Ù. ![]()
Composite À§Á¬Àº ½ºÅ©·Ñ °¡´ÉÇÑ À§Á¬À¸·Î »ó¼ö SWT.H_SCROLL °ú SWT.V_SCROLLÀ» ÀÌ¿ëÇØ¼ ½ºÅ©·ÑÀ» Ãß°¡½Ãų ¼öµµ ÀÖ´Ù. 3.6.1 Table À§Á¬
Å×À̺í À§Á¬Àº ¹®ÀÚ¿À̳ª À̹ÌÁö¸¦ Ãâ·ÂÇϱâ À§ÇÑ À§Á¬ÀÌ´Ù.
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|