ActionEvent´Â AWTEventŬ·¡½º¸¦ »ó¼ÓÇØ¼ »ç¿ëµÇ¾îÁö´Â AWT ÆÐŰÁöÀÇ Å¬·¡½ºÀÔ´Ï´Ù. ActionEventÀÇ »ó¼ÓÀº ´ÙÀ½°ú °°ÀÌ ÀÌ·ç¾îÁý´Ï´Ù.
n public class ActionEvent extends AWTEvent
ActionEvent´Â °¢ ÄÄÆ÷³ÍÆ®°¡ Á¤ÀÇÇϰí ÀÖ´Â ¾×¼ÇÀÌ ¹ß»ýÇßÀ» ¶§, ±× ¹ß»ýÇÑ À̺¥Æ®ÀÇ ¸ðµç Á¤º¸¸¦ °¡Áö°í Àִ Ŭ·¡½ºÀÔ´Ï´Ù. ¿¹¸¦ µé¾î, ¹öư ÄÄÆ÷³ÍÆ®¿¡¼ ¹öưÀÌ ´·ÈÀ» °æ¿ì, MenuItemÀº ¸Þ´º°¡ ¼±ÅõÆÀ» °æ¿ì, TextField´Â Űº¸µå ÀÔ·ÂÀÌ »ý°åÀ» °æ¿ì¿¡ ÀÌ·¯ÇÑ ActionEvent°¡ ¹ß»ýÇÕ´Ï´Ù. ¾Æ·¡ Ç¥¿¡ ActionEvent¸¦ ¹ß»ýÇÏ´Â ÄÄÆ÷³ÍÆ®¸¦ Á¤¸®ÇÏ¿´½À´Ï´Ù.
ActionEvent¸¦ ¹ß»ýÇÏ´Â ÄÄÆ÷³ÍÆ® |
n Button : Ŭ¸¯ÇßÀ» ¶§ n List : Ŭ¸¯ÇßÀ» ¶§ n TextField : ¿£ÅÍ۸¦ ÃÆÀ» ¶§ n MenuItem : Ŭ¸¯ÇßÀ» ¶§ n À§ ÄÄÆ÷³ÍÆ®¸¦ »ó¼ÓÇÏ´Â ¸ðµç ÄÄÆ÷³ÍÆ®µé(CheckboxMenuItem, Menu, PopupMenu) |
ÀÌ·¯ÇÑ ¾×¼Ç À̺¥Æ®´Â ÄÄÆ÷³ÍÆ®¿¡ µû¶ó °¢°¢ Á¤ÀǵǾî ÀÖ½À´Ï´Ù. ÄÄÆ÷³ÍÆ®ÀÇ addActionListener ¸Þ¼µå¸¦ ÀÌ¿ëÇÏ¿© ¾×¼Ç À̺¥Æ®¸¦ ó¸®ÇÒ ActionListener °´Ã¼¸¦ µî·ÏÇÒ ¼ö ÀÖ°í, ÀÌ·¸°Ô µî·ÏµÈ ¸ðµç ActionListener°´Ã¼¿¡ ¾×¼Ç À̺¥Æ®°¡ Àü´ÞµÇ¾î 󸮵ǵµ·Ï ÇÕ´Ï´Ù. À̶§, ActionListener°´Ã¼´Â ActionListenerÀÎÅÍÆäÀ̽º ÇüÅ·Π±¸ÇöµÇ¾îÁý´Ï´Ù.
ActionEvent´Â ÇϳªÀÇ ActionListener¸¸ ÀÛ¼ºÇÏ¸é ¿©·¯ ÄÄÆ÷³ÍÆ®µé¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Ù´Â À¯¿ë¼º ¶§¹®¿¡ ÀÚÁÖ »ç¿ëµÇ°í ÀÖ½À´Ï´Ù. ±×·³ ¿¹Á¦¸¦ ÅëÇØ Á»´õ ÀÚ¼¼È÷ ¾Ë¾Æº¸µµ·Ï ÇϰڽÀ´Ï´Ù.
´ÙÀ½Àº ¹öưÀ» Ŭ¸¯Çϸé ActionEvent¸¦ ÀÌ¿ëÇØ¼ ÅØ½ºÆ® ÇʵåÀÇ ¹è°æ»ö»ó°ú ±ÛÀÚ¸¦ »ðÀÔÇÏ´Â ¿¹Á¦ÀÔ´Ï´Ù. ±ÛÀÚ¸¦ »ðÀÔÇÒ ¶§´Â getActionCommand() ¸Þ¼µå¸¦ »ç¿ëÇÏ¿´´Âµ¥, ¹«¾ùÀ» ¹ÝȯÇÏ´ÂÁö Á÷Á¢ ½ÇÇàÇØ¼ È®ÀÎÇϽʽÿÀ. ±×·¯¸é ÀÌÇØ°¡ ÈξÀ ½¬¿ï °ÍÀÔ´Ï´Ù.
ActionEventTest.java(¹öưÀ» ÀÌ¿ëÇØ ActionEvent¸¦ ½ÇÇàÇÑ ¿¹Á¦) |
import java.awt.*; import java.awt.event.*; class ActionEventTest1 extends Frame { Button b1, b2; TextField tf1; public ActionEventTest1(){ setLayout(new FlowLayout()); ActionListener al = new ActionListener(){ public void actionPerformed(ActionEvent ae) { if(ae.getSource() == b1) { b1.setEnabled(false); b2.setEnabled(true); tf1.setBackground(Color.yellow); tf1.setText(ae.getActionCommand()); }else { b1.setEnabled(true); b2.setEnabled(false); tf1.setBackground(Color.white); tf1.setText(ae.getActionCommand()); } } }; this.b1 = new Button("Enable"); this.b2 = new Button("Disable"); this.b2.setEnabled(false); this.tf1 = new TextField(4); this.b1.addActionListener(al); this.b2.addActionListener(al); this.add(b1); this.add(b2); this.add(tf1); } public static void main(String args[]) { ActionEventTest1 f = new ActionEventTest1(); f.pack(); f.setVisible(true); } } |
C:\javaFile\awtEvent>javac ActionEventTest.java C:\javaFile\awtEvent>java ActionEventTest ¡¤ óÀ½ È¸é ¡¤ ¡°Enable¡±À» Ŭ¸¯½Ã ¡¤ ¡°Disable¡±À» Ŭ¸¯½Ã |
ActionEventŬ·¡½ºÀÇ ¿¹Á¦¸¦ À§ÇÑ ActionEventTestŬ·¡½ºÀÔ´Ï´Ù. Á¦ÀÏ ¸ÕÀú À̺¥Æ®¸¦ ¹ß»ýÇÏ°Ô Çϱâ À§Çؼ À̺¥Æ® ÆÐŰÁö¸¦ import ½Ãŵ´Ï´Ù.
n import java.awt.event.*;
ActionListener ÀÎÅÍÆäÀ̽º´Â ¾×¼Ç À̺¥Æ®¸¦ ¹Þ¾Æ¼ ó¸®ÇÒ ¸®½º³Ê°¡ ±¸ÇöÇØ¾ß ÇÒ ±â´ÉÀ» Á¤ÀÇÇϰí ÀÖ´Â ÀÎÅÍÆäÀ̽ºÀÔ´Ï´Ù. µû¶ó¼, ¾×¼Ç À̺¥Æ®¸¦ ó¸®ÇÒ Å¬·¡½º´Â ÀÌ ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇØ¾ß ÇÏ´Â °ÍÀÔ´Ï´Ù. °´Ã¼¸¦ »ý¼ºÇÑ ÈÄ¿¡´Â ¾×¼Ç À̺¥Æ®¸¦ ó¸®ÇÒ ÄÄÆ÷³ÍÆ®ÀÇ addActionListener()¸Þ¼µå¸¦ ÀÌ¿ëÇÏ¿© ÄÄÆ÷³ÍÆ®¿¡ µî·ÏÇÏ°Ô µË´Ï´Ù. ¾×¼ÇÀÌ ¹ß»ýÇßÀ» °æ¿ì, ActionListener´Â ´ÙÀ½°ú °°ÀÌ ActionEvent¸¦ ÀÎÀÚ·Î ÇÑ actionPerformed() ¸Þ¼µå¸¦ ³»ºÎÀûÀ¸·Î È£ÃâÇÏ°Ô µÇ´Â °ÍÀÔ´Ï´Ù.
n ActionListener al = new ActionListener() {
n public void actionPerformed(ActionEvent ae) {
// ½ÇÁ¦ ±¸Çö
n }
n };
n b1.addActionListener(al);
getSource()¸Þ¼µå´Â À̺¥Æ®°¡ ¹ß»ýÇÑ À̺¥Æ® ¼Ò½º(Event Source) °´Ã¼¸¦ ObjectÇüÀ¸·Î ¹ÝȯÇÕ´Ï´Ù. À̺¥Æ® ¼Ò½º °´Ã¼´Â ¹Ù·Î À̺¥Æ®¸¦ ¹ß»ý½ÃŲ ÄÄÆ÷³ÍÆ®, Áï ¹öư ¡°b1¡±À» °¡¸£Å°´Â °ÍÀÔ´Ï´Ù.
n if(ae.getSource() == b1)
ÅØ½ºÆ® Çʵ忡 ¹®ÀÚ¸¦ »ðÀÔÇϱâ À§Çؼ setText() ¸Þ¼µå¸¦ »ç¿ëÇÕ´Ï´Ù. ÀÌ¹Ì ÅØ½ºÆ® Çʵå Àå¿¡¼ ¹è¿ì°Ô µÉ °ÍÀÔ´Ï´Ù. getActionCommand() ¸Þ¼µå´Â ¾×¼ÇÀÌ ¹ß»ýÇÑ °´Ã¼ÀÇ ·¹À̺íÀ» ¹ÝȯÇÕ´Ï´Ù. ±×·¡¼ ÅØ½ºÆ® Çʵ忡 ¡°Enable¡±À̶ó°í »ðÀԵǴ °ÍÀÔ´Ï´Ù.
n tf1.setText(ae.getActionCommand());
ÇÁ·¹ÀÓÀÌ ¶ã ¶§, ¹öưÀ» Ŭ¸¯ÇÒ ¼ö ¾øµµ·Ï ºñȰ¼ºÈ·Î ÃʱâÈÇÕ´Ï´Ù.
n this.b2.setEnabled(false);
¿¹Á¦¿¡ µé¾î°£ ¸ðµç this´Â »èÁ¦Çصµ ½ÇÇà¿¡´Â ÀüÇô ¹®Á¦°¡ ¾ø½À´Ï´Ù. ÀÌ·¸°Ô ÇÏ´Â ÀÌÀ¯´Â ÁÁÀº ÄÚµù ½À°üÀ» µéÀ̱â À§Çؼ ÀÔ´Ï´Ù. Áö±ÝÀº °£´ÜÇÑ ¿¹Á¦À̱⠶§¹®¿¡ »ó°ü¾øÀ¸³ª, Äڵ尡 ±æ¾îÁö°í Á»´õ º¹ÀâÇØÁö¸é °´Ã¼°¡ ´©±¸ÀÇ ¼Ò¼ÓÀÎÁö ±¸º°ÇϱⰡ ¾î·Á¿öÁý´Ï´Ù. this¸¦ ÀûÀýÇÏ°Ô ºÙ¿© Áشٸé ÄÚµåºÐ¼®ÀÌ ÈξÀ ½¬¿öÁöÁö ¾ÊÀ»±î¿ä?
ActionEvent´Â °¢ ÄÄÆ÷³ÍÆ®¿¡ ƯÀ¯ÀÇ µ¿ÀÛÀÌ ¹ß»ýÇßÀ» °æ¿ì ¹ß»ýÇÏ´Â À̺¥Æ®·Î, ±× ¹ß»ýµÈ À̺¥Æ®ÀÇ ¸ðµç Á¤º¸¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. ¹ß»ýÇÑ À̺¥Æ®¸¦ ó¸®ÇÏ´Â À̺¥Æ® ¸®½º³Ê´Â ActionListenerÀ̸ç, actionPerformed()¸Þ¼µå¸¦ ÀçÁ¤ÀÇ ÇØ¼ À̺¥Æ®¸¦ ó¸®ÇÏ¸é µÇ´Â °ÍÀÔ´Ï´Ù. ÀÌ·¯ÇÑ ÀÚ¹Ù À̺¥Æ® ó¸® ¸ðµ¨À» À§ÀÓÇü(delegation) À̺¥Æ® ó¸® ¸ðµ¨À̶ó°í ÇÕ´Ï´Ù. C++¿¡¼ °¡Á®¿Â ±â¹ýÀ¸·Î, ÀÌ·¯ÇÑ ¸ðµ¨À» Ŭ·¡½º·Î ¸¸µé¾î »ç¿ëÇÏ´Â Á¤µµÀÇ ¼öÁØÀÌ µÈ´Ù¸é ´ç½ÅÀº ÀÚ¹ÙÀÇ °í¼ö Áß¿¡ °í¼ö °è¿¿¡ µé¾î¼°Ô µÇ´Â °ÍÀÔ´Ï´Ù.
ActionEventÀÇ ÁÖ¿ä ÇÊµå ¿ä¾à |
static int ACTION_FIRST : ¾×¼Ç À̺¥Æ®¸¦ À§ÇØ »ç¿ëµÇ´Â idÀÇ ¹üÀ§¸¦ ³ªÅ¸³»´Â ù ¹øÂ° ¼ö static int ACTION_LAST : ¾×¼Ç À̺¥Æ®¸¦ À§ÇØ »ç¿ëµÇ´Â idÀÇ ¹üÀ§¸¦ ³ªÅ¸³»´Â ¸¶Áö¸· ¼ö static int ACTION_PERFORMED : ÀǹÌÀÖ´Â ¾×¼ÇÀÌ ¹ß»ýÇß´Ù´Â °ÍÀ» ³ªÅ¸³»´Â À̺¥Æ® id |
ActionEventÀÇ ÁÖ¿ä »ý¼ºÀÚ ¸Þ¼µå |
|
AWTEvent Ŭ·¡½º°¡ Á¦°øÇØ ÁÖ´Â ±â´É |
String getActionCommand() : ¾×¼Ç°ú °ü·ÃµÈ ¸í·É¾î ¹®ÀÚ¿À» ¾ò½À´Ï´Ù. int getModifiers() : ¾×¼ÇÀÌ ¹ß»ýÇÒ ¶§ ÇÔ²² ´¸° modifier ۸¦ ¾ò½À´Ï´Ù. String paramString() : ¾×¼Ç À̺¥Æ®¸¦ °¡¸®Å°´Â ¹®ÀÚ¿·Î µÈ ÆÄ¶ó¹ÌÅ͸¦ ¾ò½À´Ï´Ù |
Adjustment Event´Â ¸¶¿ì½º³ª Űº¸µåÀÇ PageUp, PageDown۸¦ »ç¿ëÇÏ¿© ÀÏ¹Ý ¹®¼³ª À¥ ¹®¼¿¡¼ ÈçÈ÷ º¼ ¼ö ÀÖ´Â ½ºÅ©·Ñ¹Ù(Scrollbar)ÀÇ °ªÀ» º¯È ½Ãų ¶§ ¹ß»ýÇÏ´Â À̺¥Æ®¸¦ ¸»ÇÕ´Ï´Ù. Adjustment Event´Â Scrollbar¸¦ ¿òÁ÷¿´À» ¶§ ¹ß»ýÇÏ´Â À̺¥Æ®¸¦ °¨ÁöÇÏ´Â AdjustmentListenerÀÎÅÍÆäÀ̽º¿Í À̺¥Æ®¸¦ ó¸® ÇÏ´Â AdjustmentEventŬ·¡½º¿Í °ü·ÃÀÌ ÀÖ½À´Ï´Ù.
¾Æ·¡ÀÇ ¿¹Á¦´Â ¼öÆòÀ¸·Î µÇ¾îÀÖ´Â ½ºÅ©·Ñ¹Ù¸¦ ¿òÁ÷ÀÏ ¶§ ¸¶´Ù, ±× À§Ä¡ÀÇ º¯È °ªµéÀÌ µµ½ºÃ¢(¸í·É ÇÁ·ÒÇÁÆ®)¿¡ ÂïÈ÷´Â ÇÁ·Î±×·¥ÀÔ´Ï´Ù. ¿¹Á¦¸¦ Å×½ºÆ® ÇÑ ÈÄ ¼³¸í Çϵµ·Ï ÇϰڽÀ´Ï´Ù.
AdjustmentEvent ¿¹Á¦ |
import java.awt.*; import java.awt.event.*; class AdjustmentEventTest extends Frame implements AdjustmentListener{ Scrollbar slider; public AdjustmentEventTest() { setLayout(new FlowLayout()); slider = new Scrollbar(Scrollbar.HORIZONTAL, 0, 10, 0, 100); slider.setSize(100, 50); slider.addAdjustmentListener(this); add(slider); } public void adjustmentValueChanged(AdjustmentEvent e) { System.out.println(e.paramString()+", "+e.getAdjustmentType()+", "+e.getValue()); } public static void main(String args[]) { AdjustmentEventTest f = new AdjustmentEventTest(); f.setSize(200,50); f.setVisible(true); f.setTitle("AdjustmentEvent"); } } |
C:\javaclass\classes>java AdjustmentEventTest ADJUSTMENT_VALUE_CHANGED,adjType=UNIT_INCREMENT,value=1, 1, 1 ADJUSTMENT_VALUE_CHANGED,adjType=UNIT_INCREMENT,value=2, 1, 2 ADJUSTMENT_VALUE_CHANGED,adjType=UNIT_INCREMENT,value=3, 1, 3 ADJUSTMENT_VALUE_CHANGED,adjType=UNIT_DECREMENT,value=2, 2, 2 ADJUSTMENT_VALUE_CHANGED,adjType=UNIT_DECREMENT,value=1, 2, 1 |
ÀÌ ¿¹Á¦¿¡¼´Â ¸ÕÀú AdjustmentListener ÀÎÅÍÆäÀ̽º¸¦ implementsÇÏ¿©¾ß ÇÕ´Ï´Ù. ±× ÈÄ¿¡ ½ºÅ©·Ñ¹Ù¸¦ »ý¼ºÇÕ´Ï´Ù.
n Scollbar slider = new Scrollbar(Scrollbar.HORIZONTAL, 0, 10, 0, 100);
À§ ±¸ºÐ¿¡¼ Scrollbar.HORIZONTAL´Â ½ºÅ©·Ñ¹Ù¸¦ ¼öÆòÀ¸·Î »ý¼ºÇ϶ó´Â °ÍÀÔ´Ï´Ù. ½ºÅ©·Ñ¹ÙÀÇ »ý¼ºÀÚ´Â 3 Á¾·ù°¡ ÀÖ½À´Ï´Ù. ¿©±â¿¡¼ »ç¿ëµÈ »ý¼ºÀÚ´Â ¸Å°³º¯¼ö°¡ intÇü 5°³°¡ µé¾î°©´Ï´Ù. Áï, HORIZONTALÀº ¼öÆòÀ» ³ªÅ¸³»´Â intÇüÀÇ »ó¼ö¸¦ ¶æÇÕ´Ï´Ù. ¹Ý´ë·Î ¼öÁ÷À¸·Î »ý¼ºÇÏ·Á¸é Scrollbar.VERTICALÀ̶ó°í ½áÁÖ½Ã¸é µË´Ï´Ù. ±×·³, µÚ¿¡ ³ª¿À´Â ¼ýÀÚ 4°³¿¡ ´ëÇÏ¿© Àá±ñ ¾Ë¾Æ º¸°Ú½À´Ï´Ù. óÀ½ 0Àº ½ºÅ©·Ñ¹ÙÀÇ ½ÃÀÛ À§Ä¡ÀÔ´Ï´Ù. µÎ¹øÂ° 10Àº ½ºÅ©·Ñ¹Ù°¡ ¿òÁ÷ÀÏ ¶§ ºÎºÐÀ» Ç¥½ÃÇϴ ȸé À̵¿ ¸·´ë ´ÜÃßÀÇ Å©±âÀÔ´Ï´Ù. ¼¼¹øÂ° ¼ýÀÚ 0Àº ½ºÅ©·Ñ¹ÙÀÇ ÃÖÀú À§Ä¡°ªÀ̰í, ³×¹øÂ° ¼ýÀÚ 100Àº ½ºÅ©·Ñ¹ÙÀÇ ÃÖ°í À§Ä¡°ªÀÔ´Ï´Ù.
½ºÅ©·Ñ¹Ù¸¦ »ý¼ºÇÑ ÈÄ AdjustmentListener°¡ ½ºÅ©·Ñ¹Ù¸¦ °¨ÁöÇϵµ·Ï AdjustmentListener¸¦ ½ºÅ©·Ñ¹Ù¿¡ µî·ÏÇÕ´Ï´Ù.
n slider.addAdjustmentListener(this);
±× ÈÄ¿¡ AdjustmentListenerÀÇ ¸Þ¼µåÀÎ adjustmentValueChanged(AdjustmentEvent e)¸¦ ±¸ÇöÇØÁÝ´Ï´Ù.
n public void adjustmentValueChanged(AdjustmentEvent e) {...}
ÀÌÁ¦ ¸¸µé¾îÁø ½ºÅ©·Ñ¹Ù¸¦ ÇÁ·¹ÀÓ¿¡ ºÎÂø½ÃŰ¸é µË´Ï´Ù.
n add(slider);
À§ÀÇ ¿¹Á¦ÀÇ À̺¥Æ® ¹ß»ý¿¡ ´ëÇÏ¿© ¾Ë¾Æº¸¸é ´ÙÀ½°ú °°½À´Ï´Ù. ¸ÕÀú ½ºÅ©·Ñ¹ÙÀÇ ¿òÁ÷ÀÓÀÌ ¹ß»ýÇÏ¸é ¸ÕÀú AdjustmentListenerÀÇ adjustmentValueChanged(AdjustmentEvent e) ¸Þ¼µå°¡ È£ÃâµË´Ï´Ù. ÀÌ ¸Þ¼µå ¾È¿¡¼ AdjustmentEventÀÇ °´Ã¼ e °¡ »ý¼ºÀÌ µË´Ï´Ù. °´Ã¼¸¦ »ç¿ëÇÏ¿© AdjustmentEvent³»ÀÇ ¸Þ¼µåµéÀ» È£ÃâÇϰí, Ãâ·ÂÇÕ´Ï´Ù.
n e.paramString() : ¹ß»ýµÈ À̺¥Æ®ÀÇ »óŸ¦ Ç¥ÇöÇÑ ±ÛÀ» ¸®ÅÏ
n e.getAdjustmentType() : °ª º¯°æ À̺¥Æ®¸¦ ¹ß»ý½ÃŲ Adjustment TypeÀ» ¸®ÅÏ
n e.getValue() : Adjustment Event¿¡ ÀÖ´Â ÇöÀç °ªÀ» ¸®ÅÏ
°á·ÐÀûÀ¸·Î Adjustment Event´Â Scrollbar¸¦ ¿òÁ÷¿´À» ¶§ ¹ß»ýÇÏ´Â À̺¥Æ®¸¦ °¨ÁöÇÏ´Â AdjustmentListener ÀÎÅÍÆäÀ̽º¿Í À̺¥Æ®¸¦ ó¸® ÇÏ´Â AdjustmentEvent Ŭ·¡½ºÀÇ °ü°è¸¦ ¸»ÇÏ´Â °ÍÀÔ´Ï´Ù. Adjustment Event ´Â Ç×»ó ½ºÅ©·Ñ¹Ù¿Í °°ÀÌ ´Ù´Ñ´Ù°í »ý°¢Çصµ ¹«¹æÇÕ´Ï´Ù. ½ºÅ©·Ñ¹Ù¸¦ »ç¿ëÇÏ¿© Á¦¾î¸¦ ÇØ¾ß ÇÏ´Â °æ¿ì´Â Ç×»ó AdjustmentEvent ¿Í AdjustmentListener¸¦ »ý°¢ÇÏ¼Å¾ß ÇÕ´Ï´Ù. AdjustmentEvent ÀÇ ÇÊµå °ªÀ» ¾Ë°í ÀÖÀ¸¸é ÆíÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ´Â À̺¥Æ®ÀÔ´Ï´Ù.
AdjustmentEvent ÁÖ¿ä ¸â¹ö Çʵå |
static int ADJUSTMENT_FIRST : Adjustment Event ID ¹üÀ§ÀÇ Ã¹¹øÂ° Á¤¼ö ID¸¦ Ç¥½Ã static int ADJUSTMENT_LAST : Adjustment Event ID ¹üÀ§ÀÇ ¸¶Áö¸· Á¤¼ö ID¸¦ Ç¥½Ã static int ADJUSTMENT__VALUE_CHANGED : Adjustment Event °ª º¯°æ À̺¥Æ® static int BLOCK_DECREMENT : ¼öÆò ½ºÅ©·Ñ¹Ù ÄÄÆ÷³ÍÆ®ÀÇ ¹öºí ¿À¸¥ÂÊ Æ®·¢ ¶Ç´Â ¼öÁ÷ ½ºÅ©·Ñ¹Ù ÄÄÆ÷³ÍÆ®ÀÇ ¹öºí ¾Æ·¡ÂÊ Æ®·¢ ³»¿¡¼ ¸¶¿ì½º·Î Ŭ·¢Ç߰ųª PGDN ۰¡ ´·ÈÀ» ¶§ ¹ß»ý static int BLOCK_INCREMENT : ¼öÆò ½ºÅ©·Ñ¹Ù ÄÄÆ÷³ÍÆ®ÀÇ ¹öºí ¿ÞÂÊ Æ®·¢ ¶Ç´Â ¼öÁ÷ ½ºÅ©·Ñ¹Ù ÄÄÆ÷³ÍÆ®ÀÇ ¹öºí À§ÂÊ Æ®·¢ ³»¿¡¼ ¸¶¿ì½º·Î Ŭ¸¯Ç߰ųª Page UP ۰¡ ´·ÈÀ» ¶§ ¹ß»ý static int TRACK : ½ºÅ©·Ñ¹Ù ÄÄÆ÷³ÍÆ®ÀÇ ¹öºí(bubble)À» ¸¶¿ì½º·Î µå·¡±×ÇÒ ¶§ ¹ß»ý static int UNIT_DECREMENT : ¼öÆò ½ºÅ©·Ñ¹Ù ÄÄÆ÷³ÍÆ®ÀÇ ¿À¸¥ÂÊ È»ìÇ¥ ¹öư ¶Ç´Â ¼öÁ÷ ½ºÅ©·Ñ¹Ù ÄÄÆ÷³ÍÆ®ÀÇ ¾Æ·¡ È»ìÇ¥ ¹öưÀ» ´·¶À» °æ¿ì³ª ÇØ´ç ۰¡ ´·ÈÀ» ¶§ ¹ß»ý static int UNIT_INCREMENT : ¼öÆò ½ºÅ©·Ñ¹Ù ÄÄÆ÷³ÍÆ®ÀÇ ¿ÞÂÊ È»ìÇ¥ ¹öư ¶Ç´Â ¼öÁ÷ ½ºÅ©·Ñ¹Ù ÄÄÆ÷³ÍÆ®ÀÇ À§ È»ìÇ¥¹öưÀ» ´·¶À» °æ¿ì ÇØ´ç ۰¡ ´·ÈÀ» °æ¿ì ¹ß»ý |
AdjustmentEvent ÁÖ¿ä ¸Þ¼µå |
public Adjustable getAdjustable() : À̺¥Æ® Ãâó°¡ µÇ´Â Adjustable °´Ã¼¸¦ ¸®ÅÏ public int getAdjustmentType() : °ª º¯°æ À̺¥Æ®¸¦ ¹ß»ý½ÃŲ Adjustment typeÀ» ¸®ÅÏ public int getValue() : Adjustment Event¿¡ ÀÖ´Â ÇöÀç °ªÀ» ¸®ÅÏ public String paramString() : ¹ß»ýµÈ À̺¥Æ®ÀÇ »óŸ¦ Ç¥ÇöÇÑ ±ÛÀ» ¸®ÅÏ |
ComponentEvent ÄÄÆ÷³ÍÆ®°¡ À̵¿µÇ¾ú°Å³ª, Å©±â°¡ º¯ÇÏ¿´°Å³ª, ¶Ç´Â º¸À̵µ·Ï, ¾Èº¸À̵µ·Ï ¼³Á¤µÉ ¶§ ¹ß»ýÇÏ´Â Àú¼öÁØ(low-level)ÀÇ À̺¥Æ® ÀÔ´Ï´Ù. ¶ÇÇÑ À̰ÍÀº ´Ù¸¥ ÄÄÆ÷³ÍÆ® °ü·Ã À̺¥Æ®ÀÇ »óÀ§ À̺¥Æ®·Î »ç¿ëµË´Ï´Ù. AWT³»¿¡¼´Â ÄÄÆ÷³ÍÆ®ÀÇ Å©±âº¯°æ ¹× À̵¿¿¡ ´ëÇÏ¿© ³»ºÎÀûÀ¸·Î ÀÚµ¿ 󸮵DZ⠶§¹®¿¡ ÄÄÆ÷³ÍÆ® À̺¥Æ®´Â ´ÜÁö º¯°æ»çÇ×À» ¾Ë·ÁÁÖ±â À§ÇÑ ¸ñÀûÀ¸·Î »ç¿ëµË´Ï´Ù.
ÄÄÆ÷³ÍÆ® À̺¥Æ®¸¦ ó¸®ÇÏ·Á¸é ComponentListenerÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇϰųª Ãß»ó Ŭ·¡½ºÀÎ ComponentAdapterŬ·¡½ºÀÇ ¸Þ¼µå¸¦ ÀçÁ¤ÀÇÇÏ¿© »ç¿ëÇÏ¿©¾ß ÇÕ´Ï´Ù. ÀÌ Å¬·¡½º°¡ °¡Áø ¸Þ¼µå´Â ¸öüºÎºÐÀÌ ºñ¾îÀÖ´Â ¸Þ¼µå·Î »ç¿ëÇÒ ¶§´Â Ŭ·¡½ºÀÇ ¸Þ¼µå Áß ÀÚ½ÅÀÌ Ã³¸®ÇϰíÀÚ ÇÏ´Â À̺¥Æ®¸¦ À§ÇÑ ¸Þ¼µå¸¦ Àç Á¤ÀÇÇØ¼ »ç¿ëÇÏ¸é µË´Ï´Ù.
´ÙÀ½ ¿¹Á¦´Â ÇÁ·¹ÀÓ À©µµ¿ì¸¦ »ý¼ºÇÑ ´ÙÀ½ ±× À©µµ¿ìÀÇ À§Ä¡¸¦ º¯È½ÃŰ°Å³ª Å©±â¸¦ º¯°æÇÏ¸é¼ ÇÁ·¹ÀÓ ÄÄÆ÷³ÍÆ®¿¡ ³ªÅ¸³ª´Â À̺¥Æ®¿¡ µû¶ó¼ ±× Å©±â, À§Ä¡ÀÇ º¯È¸¦ º¸¿©ÁÖ´Â ÇÁ·Î±×·¥ÀÔ´Ï´Ù. ¡®´Ý±â¡¯¶ó´Â À̸§ÀÇ ¹öưÀ» Ãß°¡ÇÏ¿© ¾×¼Ç ¸®½º³Ê¸¦ ´Þ¾ÆÁÖ¾î ¹öưÀ» ´©¸£¸é À©µµ¿ì°¡ »ç¶óÁö°Ô ÇÏ¿´½À´Ï´Ù.
ComponentEventTest |
import java.awt.*; import java.awt.event.*; public class ComponentEventTest extends Frame { public ComponentEventTest() { super("ComponentEvent"); ComponentListener cl = new ComponentAdapter() { public void componentHidden(ComponentEvent e) { System.out.println(e); } public void componentMoved(ComponentEvent e) { System.out.println(e); } public void componentResized(ComponentEvent e) { System.out.println(e); } public void componentShown(ComponentEvent e) { System.out.println(e); } }; addComponentListener(cl); Button b = new Button("´Ý±â"); add(b); b.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } }); } public static void main(String[] args) { ComponentEventTest f = new ComponentEventTest(); f.setSize(200, 100); f.setVisible(true); } } |
D:\java\awt>java ComponentEventTest java.awt.event.ComponentEvent[COMPONENT_RESIZED (0,0 200x100)] on frame0 java.awt.event.ComponentEvent[COMPONENT_SHOWN] on frame0 java.awt.event.ComponentEvent[COMPONENT_MOVED (0,2 200x100)] on frame0 java.awt.event.ComponentEvent[COMPONENT_MOVED (0,9 200x100)] on frame0 java.awt.event.ComponentEvent[COMPONENT_MOVED (2,14 200x100)] on frame0 java.awt.event.ComponentEvent[COMPONENT_MOVED (-4,-4 1160x844)] on frame0 java.awt.event.ComponentEvent[COMPONENT_RESIZED (-4,-4 1160x844)] on frame0 |
¿¹Á¦¸¦ ½ÇÇà½Ã۸é À§ ±×¸²°ú °°Àº ÇÁ·¹ÀÓ À©µµ¿ì°¡ ÁÂÃø »ó´Ü¿¡ ³ªÅ¸³³´Ï´Ù. ±×¸®°í µµ½ºÃ¢¿¡¼´Â ÀºÎºÐÀÇ µÎ ÁÙ°ú °°ÀÌ ½ÇÇà½Ãų ¶§ÀÇ Á¤º¸°¡ ³ªÅ¸³³´Ï´Ù. óÀ½¿¡´Â xÁÂÇ¥ 0, yÁÂÇ¥ 0ÀÇ À§Ä¡¿¡ 200 X 100 ÀÇ Å©±â·Î À©µµ¿ì ÇÁ·¹ÀÓÀÌ ³ªÅ¸³´Ù´Â ¶æÀ̱º¿ä. ±×¸®°í ÇÁ·¹ÀÓ À©µµ¿ì¸¦ À̵¿½ÃŰ°Å³ª Å©±â¸¦ ¹Ù²Ù¸é ¾Æ·¡ºÎºÐ°ú °°ÀÌ À̵¿ÇÏ´Â Á¤º¸¿Í Å©±â Á¤º¸°¡ ³ªÅ¸³³´Ï´Ù. ±×¸®°í ¡®´Ý±â¡¯¹öưÀ» ´©¸£¸é ÇÁ·¹ÀÓ À©µµ¿ì°¡ »ç¶óÁý´Ï´Ù.
´ÙÀ½ ºÎºÐÀÌ À§ ¿¹Á¦¿¡¼ ¼³¸íÇÏ´Â ºÎºÐÀÇ ÇÙ½É ºÎºÐÀ̶ó ÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ¼Ò½º¸¦ º¸½Ã¸é, ComponentListenerÀÎÅÍÆäÀ̽º¿¡¼ ComponentAdapter Ŭ·¡½º¸¦ ¾÷ij½ºÆÃ(Upcasting)ÇÏ´Â °ÍÀ» ¾Ë ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ComponentListenerÀÎÅÍÆäÀ̽º°¡ Á¤ÀÇÇÏ°í ¸Þ¼µå¸¦ ComponentAdapter¸¦ »ç¿ëÇϰí ÀÖÀ¸¹Ç·Î ±× ¸Þ¼µå¸¦ »ç¿ëÇϱâ À§ÇÑ ¾÷ij½ºÆÃÀÌ °¡´ÉÇÑ °ÍÀÔ´Ï´Ù. ÀÌ·¸°Ô ÇÏ¿© À̺¥Æ® 󸮸¦ À§ÇÑ ¸Þ¼µåµé Áï ¼û±â±â, À̵¿, Å©±âº¯µ¿, º¸À̱⿡ °üÇÑ ¸Þ¼µåµéÀÌ ÀçÁ¤ÀÇ µÇ¾î °¢°¢ÀÇ À̺¥Æ®°¡ ¹ß»ýÇÒ ¶§ ¸¶´Ù ±× ³»¿ëÀ» Ãâ·ÂÇ϶ó°í µÇ¾î ÀÖ½À´Ï´Ù.
n ComponentListener cl = new ComponentAdapter() {
public void componentHidden(ComponentEvent e) {
System.out.println(e);
}
public void componentMoved(ComponentEvent e) {
System.out.println(e);
}
public void componentResized(ComponentEvent e) {
System.out.println(e);
}
public void componentShown(ComponentEvent e) {
System.out.println(e);
}
};
¡°´Ý±â¡±¶ó´Â À̸§ÀÇ ¹öư°´Ã¼ b¸¦ »ý¼ºÇÏ¿© Ãß°¡ÇÕ´Ï´Ù.
n Button b = new Button("´Ý±â");
n add(b);
¹öư °´Ã¼ b¿¡ ¾×¼Ç ¸®½º³Ê¸¦ ´Þ¾ÆÁÝ´Ï´Ù. ¸¶¿ì½º À̺¥Æ®°¡ ¹ß»ýÇÒ ¶§ ÇÁ·Î±×·¥À» Á¾·á½ÃŲ´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.
n b.addActionListener(new ActionListener() {
n public void actionPerformed(ActionEvent e) {
n System.exit(0);
n });
½ÇÇà ½Ã ComponentEventTestÀÇ °´Ã¼ f¸¦ »ý¼ºÇÏ¿© Å©±â¸¦ 200 X 100À¸·Î Á¤ÇØÁÖ°í ȸ鿡 ¶ç¿öÁÝ´Ï´Ù.
n ComponentEventTest f = new ComponentEventTest();
n f.setSize(200, 100);
n f.setVisible(true);
ÄÄÆ÷³ÍÆ®ÀÇ Å©±âº¯È, À̵¿, º¸À̱⠵îÀÌ ¼³Á¤µÉ ¶§ ÄÄÆ÷³ÍÆ® À̺¥Æ®°¡ ¹ß»ýÇÕ´Ï´Ù. ÀÌ À̺¥Æ®´Â ÄÄÆ÷³ÍÆ®¿¡ µî·ÏµÈ ¸®½º³Ê¿¡°Ô Àü´ÞµÇ¾î 󸮵˴ϴÙ. ÄÄÆ÷³ÍÆ® ¸®½º³Ê´Â addComponentListener ¸Þ¼µå¿¡ ÀÇÇØ µî·ÏÇÒ ¼ö ÀÖ½À´Ï´Ù. ÄÄÆ÷³ÍÆ® À̺¥Æ®´Â ÀÌ·¸°Ô ´Ù¸¥ À̺¥Æ®µé°ú ¸¶Âù°¡Áö·Î ListenerÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ°í ¸Þ¼µå¸¦ ÀçÁ¤ÀÇÇÑ ´ÙÀ½, À̺¥Æ®°¡ ÀϾ´Â °÷¿¡ Listener¸¦ Ãß°¡ÇØ ÁÜÀ¸·Î½á ÄÄÆ÷³ÍÆ®µéÀÇ º¯È¸¦ ½±°Ô °üÂûÇÒ ¼ö ÀÖ´Â °ÍÀÔ´Ï´Ù.
ComponentEvent & ComponentListener ÁÖ¿ä ¸Þ¼µå |
Component getComponent() À̺¥Æ®°¡ ¹ß»ýÇÑ ÄÄÆ÷³ÍÆ®¸¦ ¾ò½À´Ï´Ù. String paramString() À̺¥Æ®¸¦ À¯ÀÏÇÏ°Ô ³ªÅ¸³»´Â ÆÄ¶ó¸ÞÅÍ ¹®ÀÚ¿À» ¾ò½À´Ï´Ù |
void componentHidden(ComponentEvent e) ÄÄÆ÷³ÍÆ®°¡ ¾Èº¸À̵µ·Ï ¼³Á¤µÉ ¶§ È£ÃâµË´Ï´Ù. void componentMoved(ComponentEvent e) ÄÄÆ÷³ÍÆ®ÀÇ À§Ä¡°¡ º¯°æµÇ¾úÀ» ¶§ È£ÃâµË´Ï´Ù. void componentResized(ComponentEvent e) ÄÄÆ÷³ÍÆ®ÀÇ Å©±â°¡ º¯°æµÇ¾úÀ» ¶§ È£ÃâµË´Ï´Ù. void componentShown(ComponentEvent e) ÄÄÆ÷³ÍÆ®°¡ º¸À̵µ·Ï ¼³Á¤µÉ ¶§ È£ÃâµË´Ï´Ù. |
ÄÁÅ×À̳ÊÀ̺¥Æ®´Â µÎ°¡Áö ¹Û¿¡ ¾ø½À´Ï´Ù. Çϳª´Â ÄÁÅ×ÀÌ³Ê ÄÄÆ÷³ÍÆ®¿¡ ÄÄÆ÷³ÍÆ®¸¦ Ãß°¡ÇÒ ¶§ ¹ß»ýÇÏ´Â À̺¥Æ®¿Í ¹Ý´ë·Î ÄÄÆ÷³ÍÆ®¸¦ Á¦°ÅÇÒ ¶§ ¹ß»ýÇÏ´Â À̺¥Æ®, ÀÌ µÎ°¡Áö°¡ ÄÁÅ×À̳ÊÀ̺¥Æ®ÀÇ ÀüºÎÀÔ´Ï´Ù. ÄÁÅ×À̳ÊÀ̺¥Æ®°¡ ¹ß»ýÇϸé addContainerListener() ¸Þ¼µå°¡ ±× À̺¥Æ®¸¦ ó¸®ÇÒ °´Ã¼¿¡°Ô ÄÁÅ×À̳ÊÀ̺¥Æ®°¡ ¹ß»ýÇß´Ù°í ¾Ë·ÁÁÝ´Ï´Ù. ÄÁÅ×À̳ÊÀ̺¥Æ® ¹ß»ý»ç½ÇÀ» Å뺸 ¹ÞÀº °´Ã¼´Â ÄÁÅ×À̳ÊÀ̺¥Æ®ÀÇ Á¾·ù¿¡ µû¶ó ´Ù¸¥ ¸Þ¼µå¸¦ È£ÃâÇÏ°Ô µË´Ï´Ù.
¸¸ÀÏ ÄÄÆ÷³ÍÆ®¸¦ Ãß°¡ÇÒ ¶§ ¹ß»ýÇÏ´Â À̺¥Æ®¿´´Ù¸é componentAdded()¸Þ¼µå¸¦ È£ÃâÇÏ¿© ÄÁÅ×À̳ÊÀ̺¥Æ®¸¦ ó¸®ÇÏ°í ¹Ý´ë·Î ÄÄÆ÷³ÍÆ®¸¦ Á¦°ÅÇÒ ¶§ ¹ß»ýÇÏ´Â À̺¥Æ®¿´´Ù¸é componentRemoved()¸Þ¼µå¸¦ È£ÃâÇÏ¿© ÄÁÅ×À̳ÊÀ̺¥Æ®¸¦ ó¸®ÇÏ°Ô µË´Ï´Ù. ÄÁÅ×À̳ÊÀ̺¥Æ®´Â ContainerEventŬ·¡½º, ContainerAdapterŬ·¡½º, ContainerListenerÀÎÅÍÆäÀ̽º¿Í °ü·ÃÀÌ ÀÖ½À´Ï´Ù. ContainerEventŬ·¡½º¿¡´Â ÄÁÅ×À̳ÊÀ̺¥Æ®¸¦ °¨ÁöÇÏ´Â addContainerListener() ¸Þ¼µå°¡ ÀÖ½À´Ï´Ù. ContainerListenerÀÎÅÍÆäÀ̽º´Â ÄÁÅ×ÀÌ³Ê À̺¥Æ®¸¦ ó¸®ÇÒ ¼ö ÀÖ´Â ±â´ÉÀ» Á¤ÀÇÇϰí ÀÖ´Â ÀÎÅÍÆäÀ̽º·Î¼ ¾Æ±î ¼³¸íÇß´ø componentAdded()¸Þ¼µå¿Í componentRemoved()¸Þ¼µå°¡ ÀÖ½À´Ï´Ù. ContainerAdapter Ŭ·¡½º´Â ContainerListener ÀÎÅÍÆäÀ̽º·ÎºÎÅÍ ±¸ÇöµÈ Ãß»ó Ŭ·¡½ºÀÔ´Ï´Ù. µû¶ó¼ À̺¥Æ®¸¦ ó¸®ÇÒ °´Ã¼¸¦ »ý¼ºÇϰíÀÚ ÇÑ´Ù¸é ContainerListener ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â °´Ã¼¸¦ »ý¼ºÇϰųª ContainerAdapter Ŭ·¡½º¸¦ »ó¼ÓÇÑ °´Ã¼¸¦ »ý¼ºÇÏ¸é µË´Ï´Ù.
´ÙÀ½ ¿¹Á¦´Â remove¸¦ ´©¸£¸é Exit¹öư ÄÄÆ÷³ÍÆ®°¡ Á¦°ÅµÇ°í add¹öưÀ» ´©¸£¸é Exit¹öư ÄÄÆ÷³ÍÆ®°¡ »ý¼ºµÇ´Â ÄÁÅ×ÀÌ³Ê À̺¥Æ® ¿¹Á¦ÀÔ´Ï´Ù.
ScrollbarTestŬ·¡½º() (ScrollbarÄÄÆ÷³ÍÆ®¿¡ °üÇÑ ¿¹Á¦) |
import java.awt.*; import java.awt.event.*; public class ContainerEventTest extends Frame implements ActionListener{ Button b1, b2, b3; public ContainerEventTest(){ setLayout(new FlowLayout()); b1=new Button("Add"); b2=new Button("Remove"); b3=new Button("Exit"); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ removeAll(); System.exit(0); } }); addContainerListener(new ContainerAdapter(){ public void componentAdded(ContainerEvent e){ System.out.println(e); } public void componentRemoved(ContainerEvent e){ System.out.println(e); } }); add(b1); add(b2); add(b3); } public void actionPerformed(ActionEvent e){ if(e.getSource()==b1){ if(b3.getParent()!=ContainerEventTest.this){ add(b3); } }else if(e.getActionCommand().equals("Remove")){ if(b3.isVisible()){ remove(b3); } } } public static void main(String[] args){ ContainerEventTest f=new ContainerEventTest(); f.pack(); f.setVisible(true); } } |
C:\Java>javac ContainerEventTest.java C:\Java>java ContainerEventTest java.awt.event.ContainerEvent[COMPONENT_ADDED,child=button0] on frame0 java.awt.event.ContainerEvent[COMPONENT_ADDED,child=button1] on frame0 java.awt.event.ContainerEvent[COMPONENT_ADDED,child=button2] on frame0 java.awt.event.ContainerEvent[COMPONENT_REMOVED,child=button2] on frame0 java.awt.event.ContainerEvent[COMPONENT_ADDED,child=button2] on frame0 java.awt.event.ContainerEvent[COMPONENT_REMOVED,child=button2] on frame0 java.awt.event.ContainerEvent[COMPONENT_REMOVED,child=button1] on frame0 java.awt.event.ContainerEvent[COMPONENT_REMOVED,child=button0] on frame0 |
¹öưÀ» 3°³ ¸¸µé°í Add¹öư°ú Remove¹öư¿¡ ¾×¼Ç ¸®½º³Ê¸¦ »ý¼ºÇØÁÖ¾ú½À´Ï´Ù.
n b1=new Button("Add");
n b2=new Button("Remove");
n b3=new Button("Exit");
n b1.addActionListener(this);
n b2.addActionListener(this);
Exit¹öư¿¡ À̺¥Æ®°¡ ¹ß»ýÇϸé ÄÁÅ×ÀÌ³Ê ÄÄÆ÷³ÍÆ®¿¡ »ý¼ºµÈ ¸ðµç ÄÄÆ÷³ÍÆ®¸¦ Á¦°ÅÇϰí À©µµ¿ì âÀ» Á¾·áÇÕ´Ï´Ù.
n b3.addActionListener(new ActionListener(){
n public void actionPerformed(ActionEvent e){
n removeAll();
n System.exit(0);
n }
n });
ÄÁÅ×À̳ÊÀ̺¥Æ®°¡ ¹ß»ýÇϸé ÄÁÅ×À̳ÊÀ̺¥Æ®ÀÇ Á¤º¸¸¦ ÄܼÖâ¿¡ Ãâ·ÂÇØÁÝ´Ï´Ù.
n addContainerListener(new ContainerAdapter(){
public void componentAdded(ContainerEvent e){
System.out.println(e);
}
public void componentRemoved(ContainerEvent e){
System.out.println(e);
}
});
¾×¼ÇÀ̺¥Æ®°¡ Add¹öư¿¡¼ ¹ß»ýÇÏ¿´À» ¶§ ÄÁÅ×ÀÌ³Ê ÄÄÆ÷³ÍÆ®¿¡ Exit¹öư ÄÄÆ÷³ÍÆ®°¡ ¾ø´Ù¸é Exit¹öư ÄÄÆ÷³ÍÆ®¸¦ »ý¼ºÇØÁÝ´Ï´Ù.
n if(e.getSource()==b1){
n if(b3.getParent()!=ContainerEventTest.this){
n add(b3);
n }
n }
¾×¼ÇÀ̺¥Æ®°¡ Remove¹öư¿¡¼ ¹ß»ýÇÏ¿´À» ¶§ ÄÁÅ×ÀÌ³Ê ÄÄÆ÷³ÍÆ®¿¡ Exit¹öư ÄÄÆ÷³ÍÆ®°¡ ÀÖ´Ù¸é Exit¹öư ÄÄÆ÷³ÍÆ®¸¦ Á¦°ÅÇØÁÝ´Ï´Ù.
n else if(e.getActionCommand().equals("Remove")){
n if(b3.isVisible()){
n remove(b3);
n }
n }
ÀÌÁ¦´Â °á°ú°ªÀ» º¸ÁÒ. ´ÙÀ½Àº ÇÁ·Î±×·¥ ½ÇÇà½Ã¿¡ »ý¼ºÀÚ ¸Þ¼µå¿¡¼ ¹öư ÄÄÆ÷³ÍÆ®°¡ »ý¼ºµÇ¸é¼ ÄÁÅ×À̳ÊÀ̺¥Æ®°¡ ¹ß»ýÇÕ´Ï´Ù. ±×·¯¸é ÄÁÅ×À̳ʸ®½º³Ê°¡ ÄÁÅ×À̳ÊÀ̺¥Æ®¸¦ °¨ÁöÇϰí ÄÁÅ×À̳ÊÀ̺¥Æ®ÀÇ Á¤º¸¸¦ Ãâ·ÂÇØÁØ ºÎºÐÀÔ´Ï´Ù.
n java.awt.event.ContainerEvent[COMPONENT_ADDED,child=button0] on frame0
n java.awt.event.ContainerEvent[COMPONENT_ADDED,child=button1] on frame0
n java.awt.event.ContainerEvent[COMPONENT_ADDED,child=button2] on frame0
Remove¹öưÀ» ´©¸£¸é Exit¹öưÀÌ Á¦°ÅµÇ¸é¼ ÄÁÅ×À̳ÊÀ̺¥Æ®°¡ ¹ß»ýÇÕ´Ï´Ù. ±×·¯¸é ÄÁÅ×À̳ʸ®½º³Ê°¡ ÄÁÅ×À̳ÊÀ̺¥Æ®¸¦ °¨ÁöÇϰí ÄÁÅ×À̳ÊÀ̺¥Æ®ÀÇ Á¤º¸¸¦ Ãâ·ÂÇØÁØ ºÎºÐÀÔ´Ï´Ù.
n java.awt.event.ContainerEvent[COMPONENT_REMOVED,child=button2] on frame0
Add¹öưÀ» ´©¸£¸é Exit¹öưÀÌ »ý¼ºµÇ¸é¼ ÄÁÅ×À̳ÊÀ̺¥Æ®°¡ ¹ß»ýÇÕ´Ï´Ù. ±×·¯¸é ÄÁÅ×À̳ʸ®½º³Ê°¡ ÄÁÅ×À̳ÊÀ̺¥Æ®¸¦ °¨ÁöÇϰí ÄÁÅ×À̳ÊÀ̺¥Æ®ÀÇ Á¤º¸¸¦ Ãâ·ÂÇØÁØ ºÎºÐÀÔ´Ï´Ù.
n java.awt.event.ContainerEvent[COMPONENT_ADDED,child=button2] on frame0
Exit¹öưÀ» ´©¸£¸é ÄÁÅ×ÀÌ³Ê ÄÄÆ÷³ÍÆ®¿¡ »ý¼ºµÈ ¸ðµç ÄÄÆ÷³ÍÆ®¸¦ Á¦°ÅÇϰí À©µµ¿ì âÀ» Á¾·áÇÕ´Ï´Ù. À̶§¿¡µµ ÄÁÅ×À̳ÊÀ̺¥Æ®°¡ ¹ß»ýÇÕ´Ï´Ù. ±×·¯¸é ÄÁÅ×À̳ʸ®½º³Ê°¡ ÄÁÅ×À̳ÊÀ̺¥Æ®¸¦ °¨ÁöÇϰí ÄÁÅ×À̳ÊÀ̺¥Æ®ÀÇ Á¤º¸¸¦ Ãâ·ÂÇØÁØ ºÎºÐÀÔ´Ï´Ù.
n java.awt.event.ContainerEvent[COMPONENT_REMOVED,child=button2] on frame0
n java.awt.event.ContainerEvent[COMPONENT_REMOVED,child=button1] on frame0
n java.awt.event.ContainerEvent[COMPONENT_REMOVED,child=button0] on frame0
ÄÁÅ×À̳ÊÀ̺¥Æ®´Â ÄÁÅ×À̳ÊÄÄÆ÷³ÍÆ®¿¡ ÄÄÆ÷³ÍÆ®¸¦ Ãß°¡ÇÒ ¶§ ¹ß»ýÇÏ´Â À̺¥Æ®¿Í ¹Ý´ë·Î ÄÄÆ÷³ÍÆ®¸¦ Á¦°ÅÇÒ ¶§ ¹ß»ýÇÏ´Â À̺¥Æ®·Î ±¸¼ºµÇ¾î ÀÖ½À´Ï´Ù. addContainerListener() ¸Þ¼µå°¡ ÄÁÅ×À̳ÊÀ̺¥Æ®¸¦ °¨ÁöÇϰí componentAdded()¸Þ¼µå³ª componentRemoved()¸Þ¼µå¿¡¼ ÀÌ À̺¥Æ®¸¦ ó¸®ÇÏ°Ô µË´Ï´Ù.
Container static »ó¼ö |
static final int COMPONENT_ADDED: ÄÄÆ÷³ÍÆ®°¡ Ãß°¡µÇ¾úÀ½À» ³ªÅ¸³À´Ï´Ù. static final int COMPONENT_REMOVED: ÄÄÆ÷³ÍÆ®°¡ Á¦°ÅµÇ¾úÀ½À» ³ªÅ¸³À´Ï´Ù. static final int CONTAINER_FIRST: ÄÁÅ×ÀÌ³Ê À̺¥Æ® idÀÇ ½ÃÀÛ ¹øÈ£ÀÔ´Ï´Ù. static final int CONTAINER_LAST: ÄÁÅ×ÀÌ³Ê À̺¥Æ® idÀÇ ¸¶Áö¸· ¹øÈ£ÀÔ´Ï´Ù. |
Container ÁÖ¿ä »ý¼ºÀÚ ¸Þ¼µå |
Container(): »õ·Î¿î ÄÁÅ×À̳ʸ¦ »ý¼ºÇÕ´Ï´Ù. ContainerEvent(Component source, int id, Component child): ContainerEvent¸¦ »ý¼ºÇÕ´Ï´Ù.
|
Container ÁÖ¿ä ÀÏ¹Ý ¸Þ¼µå |
void componentAdded(ContainerEvent e): ÄÁÅ×ÀÌ³Ê ÄÄÆ÷³ÍÆ®¿¡ ÄÄÆ÷³ÍÆ®°¡ Ãß°¡µÉ ¶§ È£ÃâµË´Ï´Ù. void componentRemoved(ContainerEvent e): ÄÁÅ×ÀÌ³Ê ÄÄÆ÷³ÍÆ®¿¡¼ ÄÄÆ÷³ÍÆ®°¡ Á¦°ÅµÉ ¶§ È£ÃâµË´Ï´Ù. Component getChild(): À̺¥Æ®¿¡ ÀÇÇØ ¿µÇâÀ» ¹Þ´Â ÄÄÆ÷³ÍÆ®¸¦ ¾ò½À´Ï´Ù. Container getContainer(): À̺¥Æ®°¡ ¹ß»ýÇÑ ÄÁÅ×ÀÌ³Ê ÄÄÆ÷³ÍÆ®¸¦ ¾ò½À´Ï´Ù. |
Focus´Â ¸¶¿ì½º Æ÷ÀÎÅͳª Űº¸µå·ÎºÎÅÍ ÄÄÆ÷³ÍÆ®¸¦ ¼±Åà ¹Þ¾ÒÀ» ¶§ ÁÖ¾îÁý´Ï´Ù. ÀÌÇØ°¡ Àß ¾ÈµÇ½ÃÁÒ? ±×·³, ȸ鿡 À©µµ¿ì âÀ» ¿©·¯ °³ ¶ç¾îº¸½Ã±æ ¹Ù¶ø´Ï´Ù. ÇöÀç ¿©·¯ºÐÀÌ º¸°í ÀÖ´Â À©µµ¿ìÀÇ Å¸ÀÌÆ² ¹Ù°¡ ¹àÀº »öÀ» ¶ç°í ÀÖÀ» ÅÙµ¥ ÀÌ´Â À©µµ¿ì âÀÌ ¼±ÅõǾúÀ½À» º¸¿©ÁÖ´Â °ÍÀÔ´Ï´Ù. ±×¸®°í ³ª¸ÓÁö À©µµ¿ì âµéÀº ¾îµÎ¿î »öÀ» ¶ç°í Àִµ¥ ÀÌ´Â ¼±ÅõÇÁö ¸øÇßÀ½À» º¸¿©ÁÖ´Â °ÍÀÔ´Ï´Ù. Focus¸¦ °¡Á³´Ù´Â ¸»Àº ÀüÀÚó·³ ÄÄÆ÷³ÍÆ®°¡ ¼±ÅõǾú´Ù´Â °ÍÀ¸·Î, Focus¸¦ ÀÒ¾ú´Ù´Â ¸»Àº ÈÄÀÚó·³ ÄÄÆ÷³ÍÆ®°¡ ¼±ÅõÇÁö ¸øÇß´Ù´Â °ÍÀ¸·Î ÀÌÇØÇÏ¸é ½¬¿ï °ÍÀÔ´Ï´Ù.
Focus¶ó´Â °ÍÀº ÄÄÆ÷³ÍÆ®¿¡ ´ëÇÑ °ÍÀ̹ǷΠÀ©µµ¿ì»Ó¸¸ ¾Æ´Ï¶ó, TextField °°Àº ÀÛÀº ÄÄÆ÷³ÍÆ®¿¡µµ ÀÏÀÏÀÌ Focus¸¦ °¡Áö°Å³ª »¯±â°Å³ª ÇÒ ¼ö ÀÖÀ½À» ±â¾ïÇϽñ⠹ٶø´Ï´Ù.
ÀÌ Àå¿¡¼´Â FocusÀ̺¥Æ®ÀÇ ÀÇ¹Ì¿Í È°¿ë¹æ¹ý¿¡ ´ëÇØ¼ ¾Ë¾Æº¸°Ú½À´Ï´Ù. Focus Event´Â TextField ÄÄÆ÷³ÍÆ®¿Í °°Àº ÄÄÆ÷³ÍÆ®¿¡¼ ÁÖ·Î ¹ß»ýÇϴµ¥ ÄÄÆ÷³ÍÆ®°¡ ¸¶¿ì½ºÀÇ ÃÊÁ¡À» ¾ò¾ú°Å³ª ÀÒ¾úÀ» ¶§ ¹ß»ýÇÏ´Â À̺¥Æ®ÀÔ´Ï´Ù. ÀÌ À̺¥Æ®´Â FocusListener ¶Ç´Â FocusAdapter¿¡ Àü´ÞµÇ°í, Component classÀÇ addFocusListener¸Þ¼µå¸¦ ÀÌ¿ëÇÏ¿© µî·ÏÇÒ ¼ö ÀÖ½À´Ï´Ù.
FocusÀ̺¥Æ®´Â ¹ß»ýÇÏ´Â »óȲ¿¡ µû¶ó µÎ°¡Áö Á¾·ù·Î ³ª´µ¾îÁý´Ï´Ù.
FocusÀÇ º¯È |
¿µ¿øÇÑ(Permanent) Æ÷Ä¿½º º¯È : requestFocus() ¸Þ¼µå È£Ãâ ¶Ç´Â »ç¿ëÀÚ°¡ ÅÇ Å°¸¦ ÀÌ¿ëÇÏ¿© ÄÄÆ÷³ÍÆ® °£¿¡ Æ÷Ä¿½º¸¦ À̵¿½Ãų ¶§ ¹ß»ýÇÏ´Â Æ÷Ä¿½º º¯È À̺¥Æ® ¼ø°£ÀûÀÎ(Temporary) Æ÷Ä¿½º º¯È : À©µµ¿ìÀÇ ºñȰ¼ºÈ ¶Ç´Â ½ºÅ©·Ñ ¹ÙÀÇ µå·¡±×¿Í °°Àº ´Ù¸¥ µ¿ÀÛ¿¡ ÀÇÇÑ °£Á¢ÀûÀÎ °á°ú·Î¼ Æ÷Ä¿½º¸¦ ¼ø°£ÀûÀ¸·Î ¾ò°Å³ª ÀÒÀ» ¶§ ¹ß»ýÇÏ´Â Æ÷Ä¿½º º¯È À̺¥Æ®, ÀÌ·± °æ¿ì, À©µµ¿ì°¡ ´Ù½Ã Ȱ¼ºÈµÇ°Å³ª ÇØ´ç µ¿ÀÛÀÌ ³¡³ª¸é Æ÷Ä¿½º´Â ÀÚµ¿À¸·Î Àü »óÅ·Πº¹±¸µË´Ï´Ù. |
FocusListenerÀÎÅÍÆäÀ̽º´Â Æ÷Ä¿½º À̺¥Æ®¸¦ ó¸®ÇÒ ¼ö ÀÖ´Â ±â´ÉÀ» Á¤ÀÇÇϰí ÀÖ´Â ÀÎÅÍÆäÀ̽ºÀÔ´Ï´Ù. Æ÷Ä¿½º À̺¥Æ®¸¦ ó¸®ÇϰíÀÚ Çϴ Ŭ·¡½º´Â ÀÌ·¯ÇÑ FocusListener ÀÎÅÍÆäÀ̽º°¡ Á¤ÀÇÇϰí ÀÖ´Â ¸ðµç ¸Þ¼µå¸¦ ±¸ÇöÇϰųª, ¶Ç´Â Ãß»ó Ŭ·¡½ºÀÎ FocusAdapter Ŭ·¡½ºÀÇ °ü·Ã ¸Þ¼µå¸¦ ÀçÁ¤ÀÇÇÏ¿© È®ÀåÇØ¾ß ÇÕ´Ï´Ù.
FocusListener ÀÎÅÍÆäÀ̽º¿¡ Á¤ÀÇµÈ ¸Þ¼µå |
public void focusGained(FocusEvent e) : ÄÄÆ÷³ÍÆ®°¡ Űº¸µå Æ÷Ä¿½º¸¦ ¾ò¾úÀ» ¶§ È£Ãâ public void focusLost(FocusEvent e) : ÄÄÆ÷³ÍÆ®°¡ Űº¸µå Æ÷Ä¿½º¸¦ ÀÒ¾úÀ» ¶§ È£Ãâ |
FocusListenerÀÇ ±¸ÇöÀº ´ÙÀ½°ú °°½À´Ï´Ù.
n class focusListener implements FocusListener {
n public void focusGained(FocusEvent e){}
n public void focusLost(FocusEvent e){}
n }
ÄÁÅ×ÀÌ³Ê À̺¥Æ®¸¦ ¹Þ¾Æ¼ ó¸®Çϱâ À§ÇÑ Ãß»ó ¾î´ðÅÍ Å¬·¡½º¸¦ Á¦°øÇØ ÁÖ°í ÀÖ½À´Ï´Ù.
´Ù¸¥ ¾îµªÅÍ Å¬·¡½ºµé°ú ¸¶Âù°¡Áö·Î ¸öü°¡ ºñ¾î ÀÖÀ¸¹Ç·Î °³¹ßÀÚ ÀÚ½ÅÀÌ Ã³¸®ÇϰíÀÚ ÇÏ´Â À̺¥Æ®¸¦ À§ÇÑ ¸Þ¼µå¸¦ ÀçÁ¤ÀÇ ÇØÁÖ¸é µË´Ï´Ù.
FocusAdapter Ŭ·¡½ºÀÇ °ü·Ã ¸Þ¼µå |
public void focusGained(FocusEvent e) : ÄÄÆ÷³ÍÆ®°¡ Űº¸µå Æ÷Ä¿½º¸¦ ¾ò¾úÀ» ¶§ È£Ãâ public void focusLost(FocusEvent e) : ÄÄÆ÷³ÍÆ®°¡ Űº¸µå Æ÷Ä¿½º¸¦ ÀÒ¾úÀ» ¶§ È£Ãâ |
FocusAdapter ÀÇ ±¸ÇöÀº ´ÙÀ½°ú °°½À´Ï´Ù.
n public class focusListener extends FocusAdapter {
n //º¯°æÇϰíÀÚÇÏ´Â ¸Þ¼µå¸¸ ¿À¹ö¶óÀ̵åÇÑ´Ù.
n }
´ÙÀ½ ¿¹Á¦´Â µÎ°³ÀÇ ¹öư°ú µÎ°³ÀÇ TextField°¡ ¼·Î Focus¸¦ °¡Á³´ÂÁö ÀÒ¾ú´ÂÁö¸¦ º¸¿©ÁÖ´Â ¿¹Á¦ ÀÔ´Ï´Ù. ¿¹Á¦¸¦ ½ÇÇà½ÃÄÑ º¸½Ã¸é¼ ¸¶¿ì½º Æ÷ÀÎÅÍÀÇ À̵¿¿¡ µû¶ó °¢°¢ÀÇ ÄÄÆ÷³ÍÆ®µéÀÇ Focusº¯È¸¦ À¯½ÉÈ÷ »ìÆìº¸½Ã±â ¹Ù¶ø´Ï´Ù.
FocusEventTest.java |
import java.awt.*; import java.awt.event.*; public class FocusEventTest extends Frame implements FocusListener { public FocusEventTest(){ super("FocusEvent"); setLayout(new FlowLayout()); Button b1=new Button("¹öư1"); Button b2=new Button("¹öư2"); TextField tf1=new TextField("ÅØ½ºÆ®Çʵå1"); TextField tf2=new TextField("ÅØ½ºÆ®Çʵå2"); b1.addFocusListener(this); b2.addFocusListener(this); tf1.addFocusListener(this); tf2.addFocusListener(this); addFocusListener(this); add(b1); add(b2); add(tf1); add(tf2); } public void focusGained(FocusEvent fe) { System.out.println(fe); System.out.println(fe.isTemporary()); } public void focusLost(FocusEvent fe) { System.out.println(fe); System.out.println(fe.isTemporary()); } public static void main(String[] args) { Frame f=new FocusEventTest(); f.setSize(200, 100); f.setVisible(true); } } |
java.awt.event.FocusEvent[FOCUS_GAINED,permanent] on frame0 false java.awt.event.FocusEvent[FOCUS_LOST,permanent] on frame0 false java.awt.event.FocusEvent[FOCUS_GAINED,permanent] on button0 false java.awt.event.FocusEvent[FOCUS_LOST,permanent] on button0 false java.awt.event.FocusEvent[FOCUS_GAINED,permanent] on button1 false java.awt.event.FocusEvent[FOCUS_LOST,permanent] on button1 false java.awt.event.FocusEvent[FOCUS_GAINED,permanent] on textfield0 false java.awt.event.FocusEvent[FOCUS_LOST,permanent] on textfield0 false java.awt.event.FocusEvent[FOCUS_GAINED,permanent] on textfield1 false java.awt.event.FocusEvent[FOCUS_LOST,temporary] on textfield1 true |
À§ÀÇ ÀÚ¹Ù ÇÁ·Î±×·¥À» ½ÇÇà½ÃŲ ÈÄ, ¹öư ÄÄÆ÷³ÍÆ®°¡ Á¦ÀÏ ¸ÕÀú Æ÷Ä¿½º¸¦ ¾ò½À´Ï´Ù. ±×¸®°í, ¸¶¿ì½º·Î ÅØ½ºÆ® Çʵå ÄÄÆ÷³ÍÆ®¸¦ Ŭ¸¯Çϸé, ¹öư ÄÄÆ÷³ÍÆ®´Â Æ÷Ä¿½º¸¦ ÀÒ°í ÅØ½ºÆ® Çʵå ÄÄÆ÷³ÍÆ®°¡ Æ÷Ä¿½º¸¦ ¾ò½À´Ï´Ù.
¿¹Á¦¸¦ ÀÚ¼¼È÷ »ìÆì º¸°Ú½À´Ï´Ù.
¹öư°ú TextField, ÇÁ·¹ÀÓ¿¡ FocusListener¸¦ µî·ÏÇÕ´Ï´Ù.
n b1.addFocusListener(this);
n ¡¦
n addFocusListener(this);
¿©±â¼ Àá±ñ Àӽ÷ΠÆ÷Ä¿½º¸¦ ÀҴ´ٴ °Í¿¡ ´ëÇØ ¾Ë¾Æº¸ÁÒ. ¾î¶² À©µµ¿ì¿¡¼ ¹öư Çϳª°¡ Æ÷Ä¿½º¸¦ °¡Áö°í ÀÖ´Ù°í ÇսôÙ. ¿©·¯ºÐÀÌ ´Ù¸¥ À©µµ¿ì¸¦ Ŭ¸¯ÇÑ´Ù¸é ÀÌ ¹öưÀº Æ÷Ä¿½º¸¦ ÀÒ¾î ¹ö¸®°Ô µË´Ï´Ù. ÇÏÁö¸¸, ´Ù½Ã ¿ø·¡ À©µµ¿ì¸¦ Ŭ¸¯ÇÏ¸é ¼ø°£ÀûÀ¸·Î À©µµ¿ì°¡ Æ÷Ä¿½º¸¦ ¾òÁö¸¸ °ð Æ÷Ä¿½º¸¦ ¿ø·¡ °¡Áö°í ÀÖ´ø ¹öưÀ¸·Î ³Ñ±é´Ï´Ù. °á±¹ ¹öưÀº ÀÚ½ÅÀ» ´ã°í ÀÖ´Â À©µµ¿ì°¡ ´Ù½Ã Æ÷Ä¿½º¸¦ ¾ò±â¸¸ Çϸé ÀÚµ¿ÀûÀ¸·Î Æ÷Ä¿½º¸¦ ¾ò°Ô µÇ¹Ç·Î ¿µ±¸È÷ Æ÷Ä¿½º¸¦ ÀÒÀº °ÍÀÌ ¾Æ´Ï¶ó´Â ¶æÀÔ´Ï´Ù. ±×·¡¼ is Temporary() ¸Þ¼µå¸¦ ÅëÇØ true¸¦ ¹ÝȯÇÏ°Ô µË´Ï´Ù.
ÄÄÆ÷³ÍÆ®°¡ Æ÷Ä¿½º¸¦ ¾ò°Å³ª ÀÒ¾úÀ» ¶§, Æ÷Ä¿½º°¡ ¹ß»ýÇÑ ÄÄÆ÷³ÍÆ®¿Í À̺¥Æ® »óȲÀ» IntegerÇüÀ¸·Î º¸¿©ÁÖ°í FocusÀÇ º¯°æÀÌ ÀϽÃÀûÀÎÁö ¾Æ´ÑÁö¸¦ true¿Í false·Î º¸¿© ÁÝ´Ï´Ù.
n public void focusGained(FocusEvent fe) {
n ¡¦.
n }
n public void focusLost(FocusEvent fe) {
n ¡¦
n }
FocusÀ̺¥Æ®´Â ÄÄÆ÷³ÍÆ® À̺¥Æ®¿¡ ¼ÓÇÏ´Â °ÍÀ¸·Î ¸ðµç ÄÄÆ÷³ÍÆ®¿¡¼ ¹ß»ý ÇÒ ¼ö ÀÖ´Â À̺¥Æ®ÀÔ´Ï´Ù. ºñ½ÁÇÑ À̺¥Æ®µé·Î KeyEvent, MouseEvent, MouseMotionEvent µîÀÌ ÀÖÀ¸¸ç À̵é À̺¥Æ®µéÀº java.awt.ComponentEvent¸¦ »ó¼ÓÇÕ´Ï´Ù.
FocusÀ̺¥Æ®ÀÇ »ý¼ºÀÚ¿Í ÁÖ¿ä ¸Þ¼µå |
public FocusEvent(Component source, int id) : ÁöÁ¤µÈ ¼Ò½º ÄÄÆ÷³ÍÆ® ¹× FocusÀ̺¥Æ® À¯ÇüÀ¸·Î ¿µ±¸Àû ´Ü°èÀÇ FocusEvent °´Ã¼¸¦ ±¸¼ºÇÕ´Ï´Ù. source´Â À̺¥Æ®°¡ ¹ß»ýÇÑ ÄÄÆ÷³ÍÆ®¸¦ ³ªÅ¸³»¸ç id´Â À̺¥Æ® »óȲÀ» ¡®FOCUS_GAINED¡¯, ¡®FOCUS_LOST¡¯ µîÀÇ À̺¥Æ®id IntegerÇüÀ¸·Î ¹ÝȯÇÕ´Ï´Ù. public FocusEvent(Component source, int id, boolean temporary) : FocusÀ̺¥Æ®°¡ Temporary À̺¥Æ®ÀÎÁö ¾Æ´ÑÁö¿¡ °ü°è¾øÀÌ, ÁöÁ¤µÈ ¼Ò½º ÄÄÆ÷³ÍÆ®¿Í FocusÀ̺¥Æ® À¯ÇüÀ¸·Î FocusEvent °´Ã¼¸¦ ±¸¼ºÇÕ´Ï´Ù. ÀÌ »ý¼ºÀÚ´Â Focusº¯È°¡ ÀϽÃÀûÀÎÁö Áö¼ÓÀûÀÎÁö¸¦ ¸í½Ã ÇÒ ¼ö ÀÖ½À´Ï´Ù. public boolean isTemporary() : Æ÷Ä¿½º º¯°æÀÌ ÀÓ½ÃÀûÀÎ °ÍÀÎÁö ¾Æ´ÑÁö¸¦ ¸®ÅÏÇÕ´Ï´Ù. ÀÓ½ÃÀûÀ̶ó¸é true¸¦ Áö¼ÓÀûÀ̶ó¸é false¸¦ ¹ÝȯÇÕ´Ï´Ù. |
KeyEvent Ŭ·¡½º´Â InputEventŬ·¡½ºÀÇ ÇÏÀ§ Ŭ·¡½º·Î ÄÄÆ÷³ÍÆ® ³»¿¡¼ ŰÀÇ ÀÔ·ÂÀÌ ¹ß»ýÇÒ ¶§, À̰ÍÀ» ó¸®ÇØ ÁÖ±â À§ÇÑ ±â´ÉÀ» Á¦°øÇØ ÁÖ´Â À̺¥Æ® Ŭ·¡½º ÀÔ´Ï´Ù. ¿©±â¼ À̺¥Æ®´Â ۸¦ ´©¸£°Å³ª(press), ¶¼°Å³ª(release) ŸÀÌÇÁ(Typed) µÇ¾úÀ» ¶§ ¹ß»ýÇÕ´Ï´Ù. À̰͵µ ¿ª½Ã ListenerÀÎ addKeyListener¸Þ¼µå¿¡ ÀÇÇØ À̺¥Æ®¸¦ ó¸®Çϱâ À§ÇØ µî·ÏµÈ KeyListener ¶Ç´Â KeyAdapter°´Ã¼¿¡ À̺¥Æ®°¡ Àü´ÞµË´Ï´Ù. ÀÌ·¸°Ô Àü´ÞµÈ À̺¥Æ®´Â KeyListenerÀÎÅÍÆäÀ̽º°¡ Á¤ÀÇÇϰí ÀÖ´Â ¸ðµç ¸Þ¼µå¸¦ ±¸ÇöÇϰųª, Ãß»ó Ŭ·¡½ºÀÎ KeyAdapterŬ·¡½ºÀÇ °ü·Ã ¸Þ¼µå¸¦ ÀçÁ¤ÀÇÇÏ¿© À̺¥Æ®¸¦ ó¸®ÇÕ´Ï´Ù.
´ÙÀ½ ¿¹Á¦´Â Űº¸µå¿¡¼ ۰¡ ŸÀÌÇÁ(Typed)µÉ ¶§ ±× °ªÀ» ¹Þ¾Æ ´Ü¼øÈ÷ ÇÁ·¹ÀÓÀÇ ÅØ½ºÆ® Çʵ忡 µð½ºÇ÷¹ÀÌ µÇ´Â °£´ÜÇÑ ¿¹Á¦ ÀÔ´Ï´Ù. ÀÌ ¿¹Á¦¿¡¼ »ìÆìº¼ Á¡Àº KeyAdapter Ŭ·¡½ºÀÇ Ãß»ó ¸Þ¼µåÀÎ KeyTyped(KeyEvent e)¸¦ ÀçÁ¤ÀÇÇÏ¿© ۰¡ ´·¯Áö´Â À̺¥Æ®°¡ ¹ß»ýÇÒ ¶§ ¸¶´Ù ±× ij¸¯ÅÍ °ªÀ» ¹Þ´Â´Ù´Â Á¡ÀÔ´Ï´Ù.
KeyEventTest |
import java.awt.*; import java.awt.event.*; import java.awt.event.KeyEvent; public class KeyEventTest extends Frame{ KeyEventTest(){ super("KeyEvent"); TextField input = new TextField(); input.addKeyListener(new KeyAdapter() { public void keyTyped(KeyEvent e) { e.getKeyChar(); } }); add(input); } public static void main(String[] args) { KeyEventTest t = new KeyEventTest(); t.setSize(150, 80); t.setVisible(true); } } |
D:\java\awt>java KeyEventTest |
¿¹Á¦¸¦ ½ÇÇà½Ã۸é À§¿Í °°ÀÌ KeyEvent¶ó´Â ŸÀÌÆ² Á¦¸ñÀ¸·Î ÇÁ·¹ÀÓ À©µµ¿ì°¡ »ý±é´Ï´Ù. ±×¸®°í ÀÚÆÇÀ» Ä¥ ¶§¸¶´Ù ´Ü¼øÈ÷ ±× °ªÀÌ ÅØ½ºÆ®Çʵ忡 ³ªÅ¸³³´Ï´Ù.
ÅØ½ºÆ®Çʵ尴ü inputÀ» »ý¼ºÇÕ´Ï´Ù.
n TextField input = new TextField();
ÅØ½ºÆ®ÇÊµå °´Ã¼ input¿¡ KeyListener¸¦ ´Þ¾ÆÁÝ´Ï´Ù. ÀÌ KeyListener´Â KeyAdapter Ŭ·¡½ºÀÇ ¸Þ¼µå¸¦ ÀçÁ¤ÀÇÇÏ¿© Űº¸µå ۰¡ ŸÀÌÇÁµÇ´Â À̺¥Æ®°¡ ¹ß»ýÇÒ ¶§¸¶´Ù ±× ±ÛÀÚ¸¦ ÅØ½ºÆ®Çʵ忡 Àû¾îÁÖ´Â ¿ªÇÒÀ» ÇÕ´Ï´Ù.
n input.addKeyListener(new KeyAdapter() {
n public void keyTyped(KeyEvent e) {
n e.getKeyChar();
n }
n });
KeyEvent°´Ã¼ t¸¦ »ý¼º½ÃÄÑ 150 X 80ÀÇ Å©±â·Î ÇÁ·¹ÀÓ À©µµ¿ì¸¦ »ý¼ºÇÏ¿© º¸¿©ÁÝ´Ï´Ù.
n KeyEventTest t = new KeyEventTest();
n t.setSize(150, 80);
n t.setVisible(true);
ÄÄÆ÷³ÍÆ® ³»¿¡¼ ¹ß»ýÇÑ Å° ÀÔ·ÂÀ» ó¸®ÇØÁÖ´Â °ÍÀÌ KeyEventŬ·¡½º ÀÔ´Ï´Ù. KeyListener·Î À̺¥Æ® ¹ß»ýÀ» Àü´ÞÇÏ¿© KeyListener ÀÎÅÍÆäÀ̽º³ª KeyAdapterŬ·¡½º¿¡¼ ó¸®ÇØ ÁÖ´Â °ÍÀÔ´Ï´Ù. ÀÏ¹Ý ¹®ÀÚŰ, F1°ú °°Àº ¾×¼ÇŰ, Shift¿Í °°Àº modifierŰµé¿¡ µû¶ó ³ªÅ¸³ª´Â À̺¥Æ®ÀÇ Á¾·ù¸¦ »ìÆìº¸°í, ÀÌ¿¡ ÀûÀýÇÑ ¸Þ¼µå¸¦ »ç¿ëÇϸé, Ű ÀԷ¿¡ µû¶ó ¹ÝÀÀÇÏ´Â ÇÁ·Î±×·¥À» ¾î·ÆÁö ¾Ê°Ô ÀÛ¼ºÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.
KeyEvent ÁÖ¿ä ¸Þ¼µå |
char getKeyChar() À̺¥Æ® ³»ÀÇ Å°¿Í °ü·ÃµÈ ¹®ÀÚ¸¦ ¾ò½À´Ï´Ù. int getKeyCode() À̺¥Æ® ³»ÀÇ Å°¿Í °ü·ÃµÈ Á¤¼ö Ű Äڵ带 ¾ò½À´Ï´Ù. static String getKeyModifiersText(int modifiers) "Shift" ¶Ç´Â "Ctrl+Shift" ¿Í °°Àº ¹®ÀÚ¿À» ¾ò½À´Ï´Ù. static String getKeyText(int keyCode) "HOME", "F1" ¶Ç´Â "A"¿Í °°Àº ¹®ÀÚ¿À» ¾ò½À´Ï´Ù. void setKeyChar(char keyChar) ³í¸®ÀûÀÎ ¹®ÀÚ(logical character)¸¦ ³ªÅ¸³»±â À§ÇÑ keyChar °ªÀ» ¼³Á¤ÇÕ´Ï´Ù. void setKeyCode(int keyCode) ¹°¸®ÀûÀΠŰ(physical key)¸¦ °¡¸®Å°±â À§ÇÑ keyCode °ªÀ» ¼³Á¤ÇÕ´Ï´Ù. void setModifiers(int modifiers) shift, ctrl, alt, ±×¸®°í meta µî°ú °°Àº Ãß°¡ÀûÀΠ۸¦ ³ªÅ¸³»´Â modifier¸¦ ¼³Á¤ÇÕ´Ï´Ù. |
KeyLister & KeyAdapter ÁÖ¿ä ¸Þ¼µå |
void keyPressed(KeyEvent e) ۰¡ ´¸± ¶§ È£ÃâµË´Ï´Ù. void keyReleased(KeyEvent e) ۰¡ ³õÀÏ ¶§ È£ÃâµË´Ï´Ù. void keyTyped(KeyEvent e) ۰¡ ŸÀÌÇÁ µÉ ¶§ È£ÃâµË´Ï´Ù. |
MouseEvent´Â java.awt.eventÆÐŰÁöÀÇ Å¬·¡½º·Î InputEventŬ·¡½º¸¦ »ó¼Ó ¹Þ¾Æ »ç¿ëµË´Ï´Ù. ¿øÇüÀº ´ÙÀ½°ú °°½À´Ï´Ù.
n public class MouseEvent extends InputEvent
¸¶¿ì½º¿Í °ü·ÃµÈ À̺¥Æ®¿¡´Â MouseEvent¿Í MouseMotionEvent°¡ ÀÖ½À´Ï´Ù. MouseEvent´Â ¸¶¿ì½º¿Í °ü·ÃµÈ ´Ü¼øÇÑ À̺¥Æ®µéÀÇ Á¤º¸¸¦ °¡Áö°í ÀÖ°í, MouseMotionEvent´Â ¸¶¿ì½ºÀÇ ¿òÁ÷ÀÓ µî ºñ±³Àû º¹ÀâÇÑ À̺¥Æ®µéÀÇ Á¤º¸¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. MouseEvent¸¦ ¹ß»ýÇÏ´Â ÄÄÆ÷³ÍÆ®µé·Î´Â ¸ðµç °ÍµéÀÌ Æ÷ÇԵ˴ϴÙ.
MouseEvent¸¦ ó¸®ÇÏ´Â ¹æ¹ýÀº µÎ °¡Áö°¡ ÀÖ½À´Ï´Ù. MouseListenerÀÎÅÍÆäÀ̽º°¡ Á¤ÀÇÇϰí ÀÖ´Â ¸ðµç ¸Þ¼µå¸¦ ±¸ÇöÇØ ó¸®Çϰųª, ¶Ç´Â Ãß»ó Ŭ·¡½ºÀÎ MouseAdapter Ŭ·¡½ºÀÇ °ü·Ã ¸Þ¼µå¸¦ ÀçÁ¤ÀÇÇÏ¿© ó¸®ÇÕ´Ï´Ù. MouseListener¸¦ »ç¿ëÇÒ ¶§ ÁÖÀÇÇÒ Á¡Àº ¸ðµç ¸Þ¼µå¸¦ ±¸ÇöÇØ ÁÖ¾î¾ß¸¸ ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. MouseListenerÀÎÅÍÆäÀ̽º¿Í MouseAdapterŬ·¡½º¿¡ ´ëÇÑ ¼³¸íÀº, °ü·Ã ¸Þ¼µåµéÀ» ¼³¸íÇÏ´Â °ÍÀ¸·Î ´ë½ÅÇϰڽÀ´Ï´Ù.
MouseListenerÀÇ ÁÖ¿ä ¸Þ¼µå |
void mouseClicked(MouseEvent e): ÄÄÆ÷³ÍÆ® »ó¿¡¼ ¸¶¿ì½º°¡ Ŭ¸¯µÇ¾úÀ» ¶§ È£ÃâµË´Ï´Ù. void mouseEntered(MouseEvent e): ¸¶¿ì½º°¡ ÄÄÆ÷³ÍÆ® ¿µ¿ª ¾ÈÀ¸·Î µé¾î¿ÔÀ» ¶§ È£ÃâµË´Ï´Ù. void mouseExited(MouseEvent e): ¸¶¿ì½º°¡ ÄÄÆ÷³ÍÆ® ¿µ¿ª ¹ÛÀ¸·Î ³ª°¥ ¶§ È£ÃâµË´Ï´Ù. void mousePressed(MouseEvent e): ÄÄÆ÷³ÍÆ® »ó¿¡¼ ¸¶¿ì½ºÀÇ ¹öưÀÌ ´¸± ¶§ È£ÃâµË´Ï´Ù. void mouseReleased(MouseEvent e): ÄÄÆ÷³ÍÆ® »ó¿¡¼ ¸¶¿ì½ºÀÇ ¹öưÀÌ ³õÀÏ ¶§ È£ÃâµË´Ï´Ù. |
MouseAdapterÀÇ ÁÖ¿ä ¸Þ¼µå |
void mouseClicked(MouseEvent e): ÄÄÆ÷³ÍÆ® »ó¿¡¼ ¸¶¿ì½º°¡ Ŭ¸¯µÇ¾úÀ» ¶§ È£ÃâµË´Ï´Ù. void mouseEntered(MouseEvent e): ¸¶¿ì½º°¡ ÄÄÆ÷³ÍÆ® ¿µ¿ª ¾ÈÀ¸·Î µé¾î¿ÔÀ» ¶§ È£ÃâµË´Ï´Ù. void mouseExited(MouseEvent e): ¸¶¿ì½º°¡ ÄÄÆ÷³ÍÆ® ¿µ¿ª ¹ÛÀ¸·Î ³ª°¥ ¶§ È£ÃâµË´Ï´Ù. void mousePressed(MouseEvent e): ÄÄÆ÷³ÍÆ® »ó¿¡¼ ¸¶¿ì½ºÀÇ ¹öưÀÌ ´¸± ¶§ È£ÃâµË´Ï´Ù. void mouseReleased(MouseEvent e): ÄÄÆ÷³ÍÆ® »ó¿¡¼ ¸¶¿ì½ºÀÇ ¹öưÀÌ ³õÀÏ ¶§ È£ÃâµË´Ï´Ù. |
MouseMotionEvent¸¦ ó¸®ÇÏ´Â ¹æ¹ý¿¡´Â MouseMotionListenerÀÎÅÍÆäÀ̽º°¡ Á¤ÀÇÇϰí ÀÖ´Â ¸ðµç ¸Þ¼µå¸¦ ±¸ÇöÇØ ó¸®ÇÏ´Â ¹æ¹ý°ú Ãß»ó Ŭ·¡½ºÀÎ MouseMotionAdapter Ŭ·¡½ºÀÇ °ü·Ã ¸Þ¼µå¸¦ ÀçÁ¤ÀÇÇÏ¿© ó¸®ÇÏ´Â ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù. MouseMotionListenerÀÎÅÍÆäÀ̽º¿Í MouseMotionAdapterŬ·¡½º¿¡ ´ëÇÑ ¼³¸íµµ °ü·Ã ¸Þ¼µåµéÀ» ¼³¸íÇÏ´Â °ÍÀ¸·Î ´ë½ÅÇϰڽÀ´Ï´Ù.
MouseMotionListenerÀÇ ÁÖ¿ä ¸Þ¼µå |
void mouseDragged(MouseEvent e): ÄÄÆ÷³ÍÆ® »ó¿¡¼ ¸¶¿ì½ºÀÇ ¹öưÀÌ ´·ÁÁø »óÅ·Πµå·¡±× µÉ ¶§ È£ÃâµË´Ï´Ù. void mouseMoved(MouseEvent e): ÄÄÆ÷³ÍÆ® »ó¿¡¼ ¸¶¿ì½º°¡ ¿òÁ÷ÀÏ ¶§ È£ÃâµË´Ï´Ù. |
MouseMotionAdapterÀÇ ÁÖ¿ä ¸Þ¼µå |
void mouseDragged(MouseEvent e): ÄÄÆ÷³ÍÆ® »ó¿¡¼ ¸¶¿ì½ºÀÇ ¹öưÀÌ ´·ÁÁø »óÅ·Πµå·¡±× µÉ ¶§ È£ÃâµË´Ï´Ù. void mouseMoved(MouseEvent e): ÄÄÆ÷³ÍÆ® »ó¿¡¼ ¸¶¿ì½º°¡ ¿òÁ÷ÀÏ ¶§ È£ÃâµË´Ï´Ù. |
À§ÀÇ ¸Þ¼µåµéÀ» »ìÆì º¸°í³ª´Ï, ÀǾÆÇÑ Á¡ÀÌ »ý±æ °ÍÀÔ´Ï´Ù. ¿Ö ¶È °°Àº ¸Þ¼µåµéÀ» ±»ÀÌ Listener¿Í Adapter·Î ³ª´©¾î¼ ¸¸µé¾î ³õ¾Ò´ÂÁö? ÀÌÀ¯´Â ´Ù¸§ÀÌ ¾Æ´Ï¶ó Linstener¶ó´Â °ÍÀº ÀÎÅÍÆäÀ̽ºÀ̱⠶§¹®¿¡ ÀÎÅÍÆäÀ̽º´Â ¸ðµç ¸Þ¼µå¸¦ ±¸ÇöÇØ ÁÖ¾î¾ß ÇÕ´Ï´Ù. ÇÏÁö¸¸ À̰ÍÀ» ´©±º°¡°¡ ±¸Çö ÇØ ³õ¾Ò´Ù¸é »ó¼Ó ¹Þ¾Æ¼ ±×³É »ç¿ëÇÏ¸é µÇÁö ¾ÊÀ» ±î¿ä. ÀÌ·¯ÇÑ Ãø¸é¿¡¼ sun¿¡¼ Á¦°øÇϰí Àִ Ŭ·¡½º°¡ ¹Ù·Î Adapter°è¿ÀÔ´Ï´Ù. ´ëºÎºÐÀÇ Adapter°è¿Àº ´Ü¼øÈ÷ ÀÎÅÍÆäÀ̽ºÀÇ ºó¸öü¸¸ ´Þ¾ÆµÐ °ÍÀÔ´Ï´Ù. ÇÁ·Î±×·¡¸Ó¸¦ ÆíÇÏ°Ô Çϱâ À§Çؼ ¸¸µé¾ú´Ù°í º¼ ¼ö ÀÖÁÒ.
´ÙÀ½Àº MouseEvent¸¦ ¾Ë¾Æº¸±â À§ÇØ, ¸¶¿ì½º·Î PanelÀ» ÂïÀ¸¸é µµ½ºÃ¢¿¡ ÂïÈù °÷ÀÇ ÁÂÇ¥°¡ Ãâ·ÂµÇ´Â °£´ÜÇÑ ¿¹Á¦ÀÔ´Ï´Ù.
MouseEventTest.java(MouseEvent ½ÇÇà ¿¹Á¦) |
import java.awt.*; import java.awt.event.*; public class MouseEventTest extends Frame { public MouseEventTest() { Panel p = new Panel(); p.setBackground(Color.yellow); add("Center", p); p.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent me) { System.out.println("XÁÂÇ¥ : " + me.getX() + ", YÁÂÇ¥ : " + me.getY()); } }); } public static void main(String args[]) { MouseEventTest f = new MouseEventTest(); f.setTitle("MouseEvent ¿¹Á¦"); f.setSize(300, 200); f.setVisible(true); } } |
C:\AwtEvent>javac MouseEventTest.java C:\AwtEvent>java MouseEventTest XÁÂÇ¥ : 101, YÁÂÇ¥ : 63 XÁÂÇ¥ : 140, YÁÂÇ¥ : 51 XÁÂÇ¥ : 126, YÁÂÇ¥ : 83 XÁÂÇ¥ : 104, YÁÂÇ¥ : 87 XÁÂÇ¥ : 69, YÁÂÇ¥ : 89 |
¿ì¼±, ¹ß»ýÇÒ À̺¥Æ®¸¦ ó¸®ÇÒ MouseAdapterŬ·¡½º¸¦ »ý¼ºÇÕ´Ï´Ù. ±×·± ÈÄ¿¡ ¹ß»ýÇÒ À̺¥Æ®¸¦ °¨ÁöÇÒ ¸®½º³Ê¸¦ »óȲ¿¡ ÀûÀýÇÏ°Ô À̺¥Æ® ¼Ò½º °´Ã¼¿¡ ºÙ¿© ÁÝ´Ï´Ù. ¿©±â¼´Â ÆÐ³ÎÀÇ °´Ã¼ÀÎ p°¡ À̺¥Æ®¸¦ ¹ß»ýÇÏ´Â ±Ù¿øÀÌ µÇ´Â À̺¥Æ® ¼Ò½º °´Ã¼°¡ µË´Ï´Ù.
ÆÐ³Î¿¡ ºÙ¾î ÁÖÀÇ ±í°Ô À̺¥Æ®¸¦ °¨½ÃÇÏ´øaddMouseListener´Â À̺¥Æ®°¡ ¹ß»ýÇÏ´Â ¼ø°£, ¹ß»ýÇÑ À̺¥Æ®ÀÇ Á¤º¸¸¦ MouseEvent¸¦ ÅëÇØ MouseAdapter¿¡ Àü´ÞÇÕ´Ï´Ù. (¿©±â¼ÀÇ À̺¥Æ® Á¤º¸¿¡ ÇØ´çÇÏ´Â °ÍÀº X¿Í YÀÇ ÁÂÇ¥ÀÔ´Ï´Ù) ±×·¯¸é ¹ß»ýÇÑ À̺¥Æ®¿¡ ÀûÀýÇÑ ¸Þ¼µå¸¦ »ç¿ëÇÏ¿© ó¸®ÇÏ°Ô µÇ´Â °ÍÀÔ´Ï´Ù. ¿©±â¼´Â, ¸¶¿ì½º°¡ ´·ÁÁö´Â À̺¥Æ®¸¦ ó¸®ÇØ¾ß Çϱ⠶§¹®¿¡ mousePressed() ¸Þ¼µå¸¦ »ç¿ëÇÏ°Ô µÇ´Â °ÍÀÔ´Ï´Ù. ¸¶Áö¸·À¸·Î Àü´ÞµÈ À̺¥Æ®ÀÇ Á¤º¸ Áß¿¡ X¿Í YÀÇ ÁÂÇ¥¸¦ Ãâ·ÂÇϱâ À§Çؼ, MouseEventÀÇ getX¿Í getY¸Þ¼µå¸¦ »ç¿ëÇÏ´Â °ÍÀÔ´Ï´Ù. ´ÙÀ½ÀÇ µÎ ÁÙ¿¡´Â À§¿¡¼ ±æ°Ô ¼³¸íÇÑ ¸ðµç °ÍÀÌ ´ã°ÜÁ® ÀÖ½À´Ï´Ù.
n p.addMouseListener(new MouseAdapter() {
n public void mousePressed(MouseEvent me) {
n System.out.println("XÁÂÇ¥ : " + me.getX() + ", YÁÂÇ¥ : " + me.getY());
n }
n });
¸¶¿ì½º¿Í °ü·ÃµÈ À̺¥Æ®¿¡´Â, ¸¶¿ì½ºÀÇ ´Ü¼øÇÑ À̺¥Æ®ÀÇ Á¤º¸¸¦ °¡Áø MouseEvent¿Í ¸¶¿ì½ºÀÇ ¿òÁ÷ÀÓ°ú °°ÀÌ Á¶±Ý º¹ÀâÇÑ Á¤º¸¸¦ °¡Áø MouseMotionEvent°¡ ÀÖ½À´Ï´Ù. ÀÌó·³ ±¸ºÐÇØ ³õÀº ÀÌÀ¯´Â, ¸¶¿ì½ºÀÇ ¿òÁ÷ÀÓ¿¡ °üÇÑ Á¤º¸¸¦ °¡Áö°í ÀÖ´Â MouseMotionEventÀÇ °æ¿ì´Â ó¸®Çϴµ¥ ¸¹Àº ½Ã°£ÀÌ °É¸®¸é¼µµ ÀÚÁÖ ¾²ÀÌÁö ¾Ê¾Æ µû·Î »©³õÀº °ÍÀÔ´Ï´Ù. Çѹø »ý°¢ÇØ º¸½Ê½Ã¿À. ¸¶¿ì½º°¡ ¿òÁ÷ÀÏ ¶§¸¶´Ù À̺¥Æ®ÀÇ Á¤º¸¸¦ °¡Áø´Ù°í! ¾Æ¸¶µµ Ư¼öÇÑ °æ¿ì¸¦ Á¦¿ÜÇϰí´Â ³Ê¹«³ª ºñ´É·üÀûÀÌÁö ¾ÊÀ»±î¿ä? MouseEvent¿¡ °üÇØ Á¤¸® ÇÑ ¹ø ÇØ º¼±î¿ä.
n ¸ÕÀú, ¹ß»ýÇÒ À̺¥Æ®¸¦ °¨ÁöÇÒ À̺¥Æ® ¸®½º³Ê¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
n À̺¥Æ® ¸®½º³Ê¸¦ ÇØ´ç ÄÄÆ÷³ÍÆ®¿¡ µî·ÏÇÕ´Ï´Ù. ÀÌ ¶§, ÇϳªÀÇ À̺¥Æ® ¸®½º³Ê´Â µÎ °³ ÀÌ»óÀÇ ÄÄÆ÷³ÍÆ®¿¡ µî·ÏµÉ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, "OK"¿Í "CANCEL" µÎ °³ÀÇ ¹öưÀÌ ÀÖÀ» °æ¿ì, ¸¶¿ì½º Ä¿¼°¡ ¹öư ³»·Î µé¾î¿À¸é ±Û¾¾ÀÇ »öÀÌ ¹Ù²î°Ô ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ÀÛ¾÷Àº ¸¶¿ì½º À̺¥Æ® ¸®½º³Ê¸¦ ÀÌ¿ëÇÏ¿© °¡´ÉÇϰí, µÎ ¹öư¿¡ ´ëÇØ °°Àº ÀÛ¾÷À» ÇÏ°Ô µÇ¹Ç·Î °°Àº ¸®½º³Ê¸¦ µÎ ¹öư ¸ðµÎ¿¡ µî·ÏÇÏ¸é µË´Ï´Ù.
n ÄÄÆ÷³ÍÆ® °´Ã¼¿¡¼ À̺¥Æ®°¡ ¹ß»ýÇÒ ¶§ ÇØ´ç ÄÄÆ÷³ÍÆ®´Â À̺¥Æ® ¼Ò½º°¡ µÇ°í, ÀÌ À̺¥Æ®´Â ¿¬°áµÈ À̺¥Æ® ¸®½º³Ê¿¡ ÀÇÇØ °¨ÁöµÇ¾îÁö°í, ó¸®Çϵµ·Ï ÀûÀýÇÑ Å¬·¡½º·Î Àü´ÞµË´Ï´Ù. À̶§ À̺¥Æ®¿¡ °üÇÑ Á¤º¸¸¦ °¡Áö°í ÀÖ´Â MouseEvent¸¦ ÅëÇØ¼ Àü´ÞµÇ¾îÁý´Ï´Ù.
n À̺¥Æ®¸¦ Àü´Þ¹ÞÀº Ŭ·¡½º´Â À̺¥Æ®ÀÇ Á¤º¸¸¦ Âü°íÇÏ¿© ÀûÀýÇÏ°Ô Ã³¸®ÇÏ°Ô µË´Ï´Ù.
¾î¶§¿ä? º°·Î ¾î·ÆÁö ¾ÊÁö¿ä. À̺¥Æ®¸¦ ó¸®ÇÏ´Â ¹æ¹ýÀº °¢ ÄÄÆ÷³ÍÆ®¿¡ µû¶ó ¸ðµÎ ´Ù¸£³ª, ¿ø¸®´Â ¸ðµÎ °°À¸´Ï ³Ê¹« ¾î·Æ°Ô »ý°¢ÇÏÁö ¸¶½Ã°í, Çϳª¸¸ÀÌ¶óµµ È®½ÇÈ÷ ÀÌÇØÇÏ½Ã¸é µË´Ï´Ù.
MouseEventÀÇ ÁÖ¿ä ÇÊµå ¿ä¾à |
static int MOUSE_FIRST : ¸¶¿ì½º À̺¥Æ® idÀÇ ½ÃÀÛ ¹øÈ£ÀÔ´Ï´Ù. static int MOUSE_LAST : ¸¶¿ì½º À̺¥Æ® idÀÇ ¸¶Áö¸· ¹øÈ£ÀÔ´Ï´Ù . static int MOUSE_PRESSED : ¸¶¿ì½ºÀÇ ¹öưÀÌ ´·ÈÀ½À» ³ªÅ¸³À´Ï´Ù. static int MOUSE_RELEASED : ¸¶¿ì½ºÀÇ ¹öưÀÌ ³õ¿´À½À» ³ªÅ¸³À´Ï´Ù. static int MOUSE_CLICKED : ¸¶¿ì½ºÀÇ ¹öưÀÌ Å¬¸¯µÇ¾úÀ½À» ³ªÅ¸³À´Ï´Ù. static int MOUSE_ENTERED : ¸¶¿ì½º°¡ ÄÄÆ÷³ÍÆ®ÀÇ ¿µ¿ª ³»·Î µé¾î¿ÔÀ½À» ³ªÅ¸³À´Ï´Ù. static int MOUSE_EXITED : ¸¶¿ì½º°¡ ÄÄÆ÷³ÍÆ®ÀÇ ¿µ¿ª ¹ÛÀ¸·Î ³ª°¬À½À» ³ªÅ¸³À´Ï´Ù. static int MOUSE_MOVED : ¸¶¿ì½º°¡ ¿òÁ÷¿´À½À» ³ªÅ¸³À´Ï´Ù. static int MOUSE_DRAGGED : ¸¶¿ì½º°¡ µå·¡±×µÇ¾úÀ½À» ³ªÅ¸³À´Ï´Ù |
MouseEventÀÇ ÁÖ¿ä »ý¼ºÀÚ ¸Þ¼µå |
MouseEvent(Component source, int id, long when, int modifiers, int x, int y, int clickCount, boolean popupTrigger) |
MouseEventÀÇ ÁÖ¿ä ¸Þ¼µå |
int getClickCount(): ¸¶¿ì½º°¡ Ŭ¸¯µÈ ¼ö¸¦ ¾ò½À´Ï´Ù. Point getPoint(): À̺¥Æ® ¼Ò½º ÄÄÆ÷³ÍÆ®¿¡ »ó´ëÀûÀÎ ¸¶¿ì½º Ä¿¼ÀÇ ÁÂÇ¥¸¦ ¾ò½À´Ï´Ù. int getX(): À̺¥Æ® ¼Ò½º ÄÄÆ÷³ÍÆ®¿¡ »ó´ëÀûÀÎ ¸¶¿ì½º Ä¿¼ÀÇ x ÁÂÇ¥¸¦ ¾ò½À´Ï´Ù. int getY(): À̺¥Æ® ¼Ò½º ÄÄÆ÷³ÍÆ®¿¡ »ó´ëÀûÀÎ ¸¶¿ì½º Ä¿¼ÀÇ y ÁÂÇ¥¸¦ ¾ò½À´Ï´Ù. boolean isPopupTrigger(): ¸¶¿ì½º À̺¥Æ®°¡ Ç÷§ÆûÀ» À§ÇÑ ÆË¾÷ ¸Þ´º¸¦ ³ªÅ¸³ª°ÔÇÒ À̺¥Æ®ÀÎÁö¸¦ ¾ò½À´Ï´Ù. void translatePoint(int x, int y): À̺¥Æ®°¡ ¹ß»ýÇÑ ÁÂÇ¥¸¦ ÇöÀçÀÇ ÁÂÇ¥ÀÇ ¼öÆò À§Ä¡¿¡ x°ª¸¸ÅÀ» ¼öÁ÷ À§Ä¡¿¡ y°ª¸¸ÅÀ» ´õÇÑ »õ·Î¿î À§Ä¡·Î ¿Å±é´Ï´Ù |
À̹ø¿¡´Â ¾ÆÀÌÅÛÀ̺¥Æ®¿¡ ´ëÇØ¼ ¼³¸íÇÒ Â÷·Ê±º¿ä. ¾ÆÀÌÅÛÀ̺¥Æ®¸¦ ¼³¸íÇϱâ Àü¿¡ ¸ÕÀú ¾ÆÀÌÅÛÀÌ ¹«¾ùÀÎÁö ¾Ë¾Æ¾ß°ÚÁö¿ä? ¸Þ´º¹Ù¸¦ ±¸¼ºÇϰí ÀÖ´Â ¿ä¼Òµé ÁßÀÇ Çϳª¸¦ ¾ÆÀÌÅÛÀ̶ó°í ÇÕ´Ï´Ù. List¹Ú½º³ª Choice¹Ú½º¾ÈÀÇ ±¸¼º¿ä¼ÒµéÁßÀÇ Çϳªµµ ¹°·Ð ¾ÆÀÌÅÛÀÌÁö¿ä. ¿ì¸®´Â ÀÌ·¯ÇÑ ¾ÆÀÌÅÛÀ» º¸Åë ¸¶¿ì½º·Î ¼±ÅÃÇØ¼ »ç¿ëÇÕ´Ï´Ù. ÀÌ·¸°Ô ¾ÆÀÌÅÛÀ» ¼±ÅÃÇϰųª ¾ÆÀÌÅÛÀÇ ¼±ÅÃÀ» ÇØÁ¦ÇßÀ» ¶§ ¹ß»ýÇÏ´Â À̺¥Æ®¸¦ ¾ÆÀÌÅÛÀ̺¥Æ®¶ó°í ÇÕ´Ï´Ù.
¿©±â¼ ¹ß»ýµÈ À̺¥Æ®´Â ComponentŬ·¡½ºÀÇ addItemListener() ¸Þ¼µå¸¦ ÅëÇØ¼ µî·ÏµÇ¾îÀÖ´Â ItemListener°´Ã¼¿¡ Àü´ÞµÇ°í ±× °´Ã¼¿¡¼ ¾ÆÀÌÅÛÀ̺¥Æ®¸¦ ó¸®ÇÏ°Ô µÇ´Â °ÍÀÔ´Ï´Ù. ¾ÆÀÌÅÛÀ̺¥Æ®´Â ItemEventŬ·¡½º¿Í ItemListenerÀÎÅÍÆäÀ̽º¿Í °ü·ÃÀÌ ÀÖ½À´Ï´Ù. ItemEventŬ·¡½º´Â ¾ÆÀÌÅÛÀ» ¼±ÅÃÇϰųª ¹Ý´ë·Î ¼±ÅÃÀ» ÇØÁ¦ÇØÁÖ¾ú´Ù´Â °ÍÀ» ³ªÅ¸³»°í ItemListenerÀÎÅÍÆäÀ̽º´Â ¾ÆÀÌÅÛÀ̺¥Æ®¸¦ ó¸®ÇÏ´Â ±â´É¿¡ ´ëÇÑ Á¤ÀǸ¦ Çϰí ÀÖ½À´Ï´Ù. ÀÚ! ÀÌÁ¦ ¾ÆÀÌÅÛ¿¡ ´ëÇÑ ¹è°æÁö½ÄÀ» ¾î´ÀÁ¤µµ ½×¾ÒÀ¸´Ï±î À̹ø¿¡´Â ¿¹Á¦¸¦ º¸°Ú½À´Ï´Ù.
´ÙÀ½Àº ÃÊÀ̽º¹Ú½º³ª ¸®½ºÆ®¹Ú½ºÀÇ ¾ÆÀÌÅÛÀ» ¼±ÅÃÇÔ¿¡ µû¶ó ¹ß»ýÇÏ´Â ¾ÆÀÌÅÛÀ̺¥Æ®¿¡ °üÇÑ ¿¹Á¦ÀÔ´Ï´Ù.
ItemEventTestŬ·¡½º() (ItemEvent¿¡ °üÇÑ ¿¹Á¦) |
import java.awt.*; import java.awt.event.*; class ItemEventTest extends Frame implements ItemListener{ private List win; private Choice unix; public ItemEventTest(){ setLayout(new FlowLayout()); win=new List(3, true); win.add("Winodws 98"); win.add("Winodws 2000"); win.add("Winodws XP"); win.addItemListener(this); unix=new Choice(); unix.add("Solaris"); unix.add("Linux"); unix.add("BSD"); unix.add("Mach"); unix.addItemListener(this); add(win); add(unix); } public void itemStateChanged(ItemEvent e){ System.out.println(e); } public static void main(String args[]) { ItemEventTest f=new ItemEventTest(); f.pack(); f.setVisible(true); f.setLocation(100, 100); } } |
C:\Java>javac ItemEventTest.java C:\Java>java ItemEventTest java.awt.event.ItemEvent[ITEM_STATE_CHANGED,item=1,stateChange=SELECTED] on list0 java.awt.event.ItemEvent[ITEM_STATE_CHANGED,item=Linux,stateChange=SELECTED] on choice0 java.awt.event.ItemEvent[ITEM_STATE_CHANGED,item=Solaris,stateChange=SELECTED] on choice0 java.awt.event.ItemEvent[ITEM_STATE_CHANGED,item=1,stateChange=DESELECTED] on list0 |
¸®½ºÆ®¹Ú½º¸¦ »ý¼ºÇÏ°í ¾ÆÀÌÅÛÀ» 3°³ ¸¸µç ÈÄ, ¸®½ºÆ®¹Ú½º¸¦ À̺¥Æ®¸®½º³Ê¿¡ µî·ÏÇÏ´Â ºÎºÐÀÔ´Ï´Ù.
n win=new List(3, true);
n win.add("Winodws 98");
n win.add("Winodws 2000");
n win.add("Winodws XP");
n win.addItemListener(this);
ÃÊÀ̽º¹Ú½º¸¦ »ý¼ºÇÏ°í ¾ÆÀÌÅÛÀ» 4°³ ¸¸µç ÈÄ, ÃÊÀ̽º¹Ú½º¸¦ À̺¥Æ®¸®½º³Ê¿¡ µî·ÏÇÏ´Â ºÎºÐÀÔ´Ï´Ù.
n unix=new Choice();
n unix.add("Solaris");
n unix.add("Linux");
n unix.add("BSD");
n unix.add("Mach");
n unix.addItemListener(this);
¾ÆÀÌÅÛÀÌ ¼±Åõǰųª ¼±ÅÃÀÌ ÇØÁö°¡ µÇ´Â °ÍÀÌ °¨ÁöµÇ¸é ±× À̺¥Æ®¿¡ ´ëÇÑ Á¤º¸¸¦ Ãâ·ÂÇÏ´Â ºÎºÐÀÔ´Ï´Ù.
n public void itemStateChanged(ItemEvent e){
n System.out.println(e);
n }
ÀÌÁ¦´Â °á°ú°ªÀ» º¸ÁÒ. ¸ÕÀú windows2000À» ¼±ÅÃÇÏÀÚ ±×°Í¿¡ ´ëÇÑ À̺¥Æ®ÀÇ Á¤º¸°¡ Ãâ·ÂµÇ¾ú½À´Ï´Ù.
n java.awt.event.ItemEvent
´ÙÀ½À¸·Î ¸®½ºÆ®¹Ú½º¿¡¼ 1¹øÂ°¾ÆÀÌÅÛÀÌ SELECTED·Î ¹Ù²î¾ú´Ù´Â ³»¿ëÀÌ Ãâ·ÂµÇ´Â±º¿ä. ¸¸ÀÏ SELECTED°¡ DESELECTED·Î Ãâ·ÂµÇ¾ú´Ù¸é ¼±ÅÃÇØÁ¦°¡ µÇ¾ú´Ù´Â ¶æÀ̰ÚÁö¿ä.
n [ITEM_STATE_CHANGED,item=1,stateChange=SELECTED] on list0
¾ÆÀÌÅÛÀ̺¥Æ®Àº ¾î¶°ÇÑ ¾ÆÀÌÅÛÀ» ¼±ÅÃÇÏ¿´´ÂÁö, ¾Æ´Ï¸é ¼±ÅÃÇØÁ¦¸¦ ½ÃÄÑÁá´ÂÁö¿¡ ´ëÇÑ °ÍÀ» °¨ÁöÇÏ´Â À̺¥Æ®ÀÔ´Ï´Ù. ¾Õ¿¡¼ ÀåȲÇÏ°Ô ¼³¸íÇßÁö¸¸ ÂüÀ¸·Î ªÀº Á¤ÀǸ¦ ³»¸®°Ô µÇ´Â±º¿ä.
ItemEvent static »ó¼ö |
static int ITEM_FIRST: ¾ÆÀÌÅÛ À̺¥Æ® idÀÇ ½ÃÀÛ ¹øÈ£. static int ITEM_LAST: ¾ÆÀÌÅÛ À̺¥Æ® idÀÇ ¸¶Áö¸· ¹øÈ£. static int SELECTED: ¼±ÅÃ ÇØÁ¦µÈ ¾ÆÀÌÅÛÀÌ ¼±ÅÃµÉ °æ¿ìÀÇ »óź¯È¸¦ ³ªÅ¸³À´Ï´Ù. static int DESELECTED: ¼±ÅÃµÈ ¾ÆÀÌÅÛÀÌ ¼±ÅÃ ÇØÁ¦°¡ µÉ °æ¿ìÀÇ »óź¯È¸¦ ³ªÅ¸³À´Ï´Ù. static int ITEM_STATE_CHANGED: ¾ÆÀÌÅÛÀÇ »óŰ¡ º¯ÇßÀ½À» ³ªÅ¸³À´Ï´Ù. |
ItemEvent ÁÖ¿ä »ý¼ºÀÚ ¸Þ¼µå |
ItemEvent(ItemSelectable source, int id, Object item, int stateChange):
|
ItemEvent ÁÖ¿ä ÀÏ¹Ý ¸Þ¼µå |
Object getItem(): À̺¥Æ®°¡ ¹ß»ýÇÑ ¾ÆÀÌÅÛ °´Ã¼¸¦ ¾ò½À´Ï´Ù. ItemSelectable getItemSelectable(): À̺¥Æ®°¡ ¹ß»ýÇÑ ¼Ò½º ÄÄÆ÷³ÍÆ®¸¦ ¾ò½À´Ï´Ù. int getStateChange(): »óÅ º¯ÈÀÇ Á¾·ù¸¦ ¾ò½À´Ï´Ù. void itemStateChanged(ItemEvent e): ¾ÆÀÌÅÛÀÇ »óŰ¡ º¯ÇßÀ» ¶§ È£ÃâµË´Ï´Ù. |
Text À̺¥Æ®´Â ÅØ½ºÆ® ÄÄÆ÷³ÍÆ®¿¡¼ ³»¿ëÀÌ ¹Ù²î¾úÀ» ¶§ ¹ß»ýÇÏ´Â À̺¥Æ®ÀÔ´Ï´Ù. ÀÌ À̺¥Æ®´Â TextComponentŬ·¡½ºÀÇ addTextListener¸Þ¼µå¸¦ ÀÌ¿ëÇÏ¿© ÅØ½ºÆ® À̺¥Æ®¸¦ ó¸®Çϱâ À§ÇØ µî·ÏµÈ ¸ðµç TextListener°´Ã¼¿¡ Àü´ÞµË´Ï´Ù. ÀÌ ¶§, ¸®½º³Ê´Â ¸¶¿ì½º°¡ ¿òÁ÷À̰í ۰¡ ´¸®´Â µî°ú °°Àº °¢°¢ÀÇ À̺¥Æ®¿¡ ´ëÇØ¼´Â ¾Ë ÇÊ¿ä´Â ¾ø°í, ´ÜÁö ÅØ½ºÆ®°¡ º¯Çß´Ù´Â ÀǹÌÀÇ À̺¥Æ®¸¸ °¡Áö¸é µË´Ï´Ù. TextEventŬ·¡½º¿¡¼ Á¦°øÇÏ´Â ±â´ÉÀ» »ìÆìº¸¸é, ´ÙÀ½°ú °°½À´Ï´Ù.
n public static int TEXT_FIRST : ÅØ½ºÆ® À̺¥Æ® idÀÇ ½ÃÀÛ ¹øÈ£ÀÔ´Ï´Ù.
n public static int TEXT_LAST : ÅØ½ºÆ® À̺¥Æ® idÀÇ ¸¶Áö¸· ¹øÈ£ÀÔ´Ï´Ù.
n public static int TEXT_VALUE_CHANGED : ÅØ½ºÆ®°¡ º¯ÇßÀ½À» ³ªÅ¸³À´Ï´Ù.
TextListenerÀÎÅÍÆäÀ̽º´Â ÅØ½ºÆ® À̺¥Æ®¸¦ ó¸®ÇÒ ¼ö ÀÖ´Â ±â´ÉÀ» Á¤ÀÇÇϰí ÀÖ´Â ÀÎÅÍÆäÀ̽ºÀÔ´Ï´Ù. ÅØ½ºÆ® À̺¥Æ®¸¦ ó¸®ÇϰíÀÚ Çϴ Ŭ·¡½º´Â ÀÌ·¯ÇÑ TextListener ÀÎÅÍÆäÀ̽º°¡ Á¤ÀÇÇϰí ÀÖ´Â ¸ðµç ¸Þ¼µå¸¦ ±¸ÇöÇØ¾ß ÇÕ´Ï´Ù. TextListenerÀÎÅÍÆäÀ̽º¿¡ ÀÇÇØ Á¤ÀǵǾî ÀÖ´Â ¸Þ¼µå¸¦ »ìÆìº¸¸é, ´ÙÀ½°ú °°½À´Ï´Ù.
n public void textValueChanged(TextEvent e): ÅØ½ºÆ®ÀÇ ³»¿ëÀÌ º¯ÇßÀ» ¶§ È£ÃâµË´Ï´Ù.
´ÙÀ½ ¿¹Á¦´Â TextEvent Ŭ·¡½º¸¦ »ç¿ëÇÏ´Â ¿¹¸¦ º¸¿©ÁÖ´Â ÇÁ·Î±×·¥ÀÔ´Ï´Ù.
TextEventTest.java |
import java.awt.*; import java.awt.event.*; public class TextEventTest extends Frame { TextArea ta; Label label = new Label(); int count = 0; public TextEventTest(){ setLayout(new GridLayout(2,1)); ta=new TextArea(3,20); ta.addTextListener(new textListener()); add(ta); add(label); } class textListener implements TextListener { public void textValueChanged(TextEvent te){ label.setText(te.paramString()+" "+ ++count); } } public static void main(String[] args) { TextEventTest f = new TextEventTest(); f.setSize(150, 60); f.setVisible(true); } } |
|
ÀÔ·Â TextArea¿¡ ÅØ½ºÆ®¸®½º³Ê¸¦ µî·Ï½Ãŵ´Ï´Ù.
n ta.addTextListener(new textListener());
TextAreaÀÇ ÀÔ·ÂÀ» ó¸®ÇÏ´Â ÅØ½ºÆ®¸®½º³Ê¸¦ ¸¸µì´Ï´Ù.
n class textListener implements TextListener {¡¦}
ÅØ½ºÆ®ÀÇ ³»¿ëÀÌ º¯ÇÒ ¶§¸¶´Ù paramString() ¸Þ¼µå¸¦ ÅëÇØ TextArea¿¡ ÀԷµǴ ¹®ÀÚ¿ÀÇ ¼ö¸¦ È£ÃâÇÕ´Ï´Ù.
n public void textValueChanged(TextEvent te) {
n label.setText(te.paramString()+" "+ ++count);
n }
Text À̺¥Æ®¿¡¼ Áß¿äÇÑ Á¡Àº ÅØ½ºÆ®ÀÇ ³»¿ëÀÌ ¹Ù²ð ¶§¸¶´Ù ¹ß»ýÇÑ´Ù´Â Á¡ÀÔ´Ï´Ù. ¿¹¸¦ µé¾î, TextField¿¡¼ ÆíÁý»óÅÂ¿Í »ó°ü¾øÀÌ Enter۸¦ ÀÔ·ÂÇÑ ÈÄ¿¡¾ß ActionÀ̺¥Æ®°¡ ¹ß»ýÀ» ÇÏÁö¸¸, TextÀ̺¥Æ®´Â ÆíÁý°úÁ¤ Áß¿¡ ÅØ½ºÆ®ÀÇ ³»¿ëÀÌ Á¶±Ý¸¸ ¹Ù²î´õ¶óµµ ¹ß»ýÇÕ´Ï´Ù. µû¶ó¼, »ç¿ëÀÚ°¡ ÆíÁýÇÑ ³»¿ëÀ» ¹Ù·Î ¹Ù·Î ó¸®ÇØ¾ß ÇÑ´Ù¸é ÀÌ Text À̺¥Æ®¸¦ ó¸®ÇÏ´Â °ÍÀÌ Æí¸®ÇÕ´Ï´Ù.
jabookÀúÀÚ¸íÇÔ |
Á¦¸ñ:¼Ò¼³°°ÀºÀÚ¹Ù3ºÎ ÀúÀÚ:ÃÖ¿µ°ü |