¼Ò¼³°°ÀºÀÚ¹Ù3ºÎ  13Àå AWT  13.8 Event  

13.8 Event Listener

 

 

13.8.1 Action Event ¿Í ActionListener

 

 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ÀÇ ÁÖ¿ä »ý¼ºÀÚ ¸Þ¼­µå

ActionEvent(Object source, int id, String command, int modifiers)) : Á¤¼öÀÎ modifiers¸¦ keys·Î °¡Áö´Â ActionEvent °´Ã¼¸¦ »ý¼ºÇÕ´Ï´Ù. Á¤¼öÇüÀÇ id¸¦ ºÎ¿©ÇÒ ¼öµµ ÀÖ°í, command¿¡ ¹®ÀÚ¿­À» »ðÀÔÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

 

AWTEvent Ŭ·¡½º°¡ Á¦°øÇØ ÁÖ´Â ±â´É

String getActionCommand() : ¾×¼Ç°ú °ü·ÃµÈ ¸í·É¾î ¹®ÀÚ¿­À» ¾ò½À´Ï´Ù.

int getModifiers() : ¾×¼ÇÀÌ ¹ß»ýÇÒ ¶§ ÇÔ²² ´­¸° modifier ۸¦ ¾ò½À´Ï´Ù.

String paramString() : ¾×¼Ç À̺¥Æ®¸¦ °¡¸®Å°´Â ¹®ÀÚ¿­·Î µÈ ÆÄ¶ó¹ÌÅ͸¦ ¾ò½À´Ï´Ù

 

 

13.8.2 Á¶Á¤ À̺¥Æ®(Adjustment Event)

 

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() : ¹ß»ýµÈ À̺¥Æ®ÀÇ »óŸ¦ Ç¥ÇöÇÑ ±ÛÀ» ¸®ÅÏ

 

 

13.8.3 ÄÄÆ÷³ÍÆ® À̺¥Æ®(Component Event)

 

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) ÄÄÆ÷³ÍÆ®°¡ º¸À̵µ·Ï ¼³Á¤µÉ ¶§ È£ÃâµË´Ï´Ù.

 

 

13.8.4 ÄÁÅ×ÀÌ³Ê À̺¥Æ®(Container Event)

 

ÄÁÅ×À̳ÊÀ̺¥Æ®´Â µÎ°¡Áö ¹Û¿¡ ¾ø½À´Ï´Ù. Çϳª´Â ÄÁÅ×ÀÌ³Ê ÄÄÆ÷³ÍÆ®¿¡ ÄÄÆ÷³ÍÆ®¸¦ Ãß°¡ÇÒ ¶§ ¹ß»ýÇÏ´Â À̺¥Æ®¿Í ¹Ý´ë·Î ÄÄÆ÷³ÍÆ®¸¦ Á¦°ÅÇÒ ¶§ ¹ß»ýÇÏ´Â À̺¥Æ®, ÀÌ µÎ°¡Áö°¡ ÄÁÅ×À̳ÊÀ̺¥Æ®ÀÇ ÀüºÎÀÔ´Ï´Ù. ÄÁÅ×À̳ÊÀ̺¥Æ®°¡ ¹ß»ýÇϸé 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¸¦ »ý¼ºÇÕ´Ï´Ù.

source - À̺¥Æ®ÀÇ ¹ß»ýÁö

id - À̺¥Æ®ÀÇ Å¸ÀÔÀ» ³ªÅ¸³»´Â Á¤¼ö

child - Ãß°¡ ¶Ç´Â »èÁ¦µÈ ÄÄÆÛ³ÍÆ®

 

Container ÁÖ¿ä ÀÏ¹Ý ¸Þ¼­µå

void componentAdded(ContainerEvent e): ÄÁÅ×ÀÌ³Ê ÄÄÆ÷³ÍÆ®¿¡ ÄÄÆ÷³ÍÆ®°¡ Ãß°¡µÉ ¶§ È£ÃâµË´Ï´Ù.

void componentRemoved(ContainerEvent e): ÄÁÅ×ÀÌ³Ê ÄÄÆ÷³ÍÆ®¿¡¼­ ÄÄÆ÷³ÍÆ®°¡ Á¦°ÅµÉ ¶§ È£ÃâµË´Ï´Ù.

Component getChild(): À̺¥Æ®¿¡ ÀÇÇØ ¿µÇâÀ» ¹Þ´Â ÄÄÆ÷³ÍÆ®¸¦ ¾ò½À´Ï´Ù.

Container getContainer(): À̺¥Æ®°¡ ¹ß»ýÇÑ ÄÁÅ×ÀÌ³Ê ÄÄÆ÷³ÍÆ®¸¦ ¾ò½À´Ï´Ù.

 

 

13.8.5 Æ÷Ä¿½º À̺¥Æ®(Focus Event)

 

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¸¦ ¹ÝȯÇÕ´Ï´Ù.

 

 

13.8.6 Ű À̺¥Æ®(Key Event)

 

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) ۰¡ ŸÀÌÇÁ µÉ ¶§ È£ÃâµË´Ï´Ù.

 

 

13.8.7 ¸¶¿ì½º À̺¥Æ®(Mouse Event)

 

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°ª¸¸Å­À» ´õÇÑ »õ·Î¿î À§Ä¡·Î ¿Å±é´Ï´Ù

 

 

13.8.8 ¾ÆÀÌÅÛ À̺¥Æ®(Item Event)

 

À̹ø¿¡´Â ¾ÆÀÌÅÛÀ̺¥Æ®¿¡ ´ëÇØ¼­ ¼³¸íÇÒ Â÷·Ê±º¿ä. ¾ÆÀÌÅÛÀ̺¥Æ®¸¦ ¼³¸íÇϱâ Àü¿¡ ¸ÕÀú  ¾ÆÀÌÅÛÀÌ ¹«¾ùÀÎÁö ¾Ë¾Æ¾ß°ÚÁö¿ä? ¸Þ´º¹Ù¸¦ ±¸¼ºÇϰí ÀÖ´Â ¿ä¼Òµé ÁßÀÇ Çϳª¸¦ ¾ÆÀÌÅÛÀ̶ó°í ÇÕ´Ï´Ù. 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):

source - À̺¥Æ®ÀÇ ¹ß»ýÁö

id - À̺¥Æ®ÀÇ Å¸ÀÔÀ» ±¸ºÐÇÏ´Â Á¤¼ö

item - À̺¥Æ®¿¡ ÀÇÇØ ¿µÇâÀ» ¹ÞÀº Ç׸ñ

stateChange - Ç׸ñÀÌ ¼±ÅõǾú´ÂÁö ¼±ÅÃ ÇØÁ¦µÇ¾ú´ÂÁö¸¦ ³ªÅ¸³»´Â Á¤¼ö

 

ItemEvent ÁÖ¿ä ÀÏ¹Ý ¸Þ¼­µå

Object getItem(): À̺¥Æ®°¡ ¹ß»ýÇÑ ¾ÆÀÌÅÛ °´Ã¼¸¦ ¾ò½À´Ï´Ù.

ItemSelectable getItemSelectable(): À̺¥Æ®°¡ ¹ß»ýÇÑ ¼Ò½º ÄÄÆ÷³ÍÆ®¸¦ ¾ò½À´Ï´Ù.

int getStateChange(): »óÅ º¯È­ÀÇ Á¾·ù¸¦ ¾ò½À´Ï´Ù.

void itemStateChanged(ItemEvent e): ¾ÆÀÌÅÛÀÇ »óŰ¡ º¯ÇßÀ» ¶§ È£ÃâµË´Ï´Ù.

 

 

13.8.9 ÅØ½ºÆ® À̺¥Æ®(TextComponent Event)

 

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ºÎ
ÀúÀÚ:ÃÖ¿µ°ü