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");