¾Õ Àý¿¡¼ ·¹À̾ƿô ½Ç½ÀÀ» À§ÇØ ¹öÆ°À» ¸ÚÁö°Ô ¹èÄ¡ÇßÁö¸¸ ¾ÆÁ÷Àº ´·¯µµ ¹ÝÀÀÀÌ ¾ø´Ù. ¹öÆ° Ç¥¸éÀÇ »ö»óÀÌ ¹Ù²î¸ç ´·¯Áö´Â È¿°ú´Â ³ªÅ¸³ªÁö¸¸ À̺¥Æ®¸¦ ó¸®ÇÏÁö ¾Ê¾Æ ¾Æ¹« µ¿ÀÛµµ ÇÏÁö ¾Ê´Â´Ù. ¿©±â¼´Â ÄÄÆ÷³ÍÆ®ÀÇ À̺¥Æ®¸¦ ó¸®ÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ½Ç½ÀÇØ º¸ÀÚ.
À̺¥Æ®´Â »ç¿ëÀÚ³ª Äڵ忡 ÀÇÇØ ¹ß»ýÇÏ´Â ÀÏüÀÇ º¯ÈÀÌ´Ù. ¸¶¿ì½º ¹öÆ°À»
Ŭ¸¯Çߴٰųª Å°º¸µå¸¦ ´·¶´Ù´Â ½ÅÈ£°¡ À̺¥Æ®ÀÇ ÀüÇüÀûÀÎ ¿¹ÀÌ¸ç ½Ã°£ °æ°ú³ª Æ÷Ä¿½º º¯È µî ÁÖº¯ »óȲÀÌ ¹Ù²î´Â °Íµµ ÀÏÁ¾ÀÇ À̺¥Æ®ÀÌ´Ù. ÇÁ·Î±×·¥ÀÌ »ç¿ëÀÚÀÇ Áö½Ã¸¦ ¹Þ¾ÆµéÀÌ°í »óÈ£ ÀÛ¿ëÇÏ·Á¸é À̺¥Æ®¿¡ ´ëÀÀµÇ´Â µ¿ÀÛÀ» ó¸®ÇØ¾ß ÇÑ´Ù.
À̺¥Æ®¿¡ ¹ÝÀÀÇÏ¿ä µ¿ÀÛÇÏ´Â ¹æ½ÄÀ» À̺¥Æ® µå¸®ºìÀ̶ó°í ÇÑ´Ù. À̺¥Æ®
ó¸®¿Í °ü·ÃµÈ Ŭ·¡½º´Â ¸ðµÎ AWT¿¡ Á¤ÀǵǾî ÀÖÀ¸¸ç ½ºÀ®Àº À̸¦ ¹°·Á¹Þ¾Æ »ç¿ëÇÑ´Ù. À̺¥Æ®¸¦ ´ë±âÇÏ¿© ó¸®ÇÏ´Â °´Ã¼¸¦ ¸®½º³Ê(listener)¶ó°í Çϸç
¸®½º³Ê³»ÀÇ À̺¥Æ® ó¸® ¸Þ¼µå¸¦ Çڵ鷯(handler)¶ó°í ÇÑ´Ù. Çڵ鷯¾È¿¡
À̺¥Æ®¿¡ ¹ÝÀÀÇÏ´Â Äڵ带 ÀÛ¼ºÇÑ´Ù.
¹öÆ°À» Ŭ¸¯ÇßÀ» ¶§ÀÇ µ¿ÀÛÀ» ÁöÁ¤ÇØ º¸ÀÚ. ¹öÆ°À» Ŭ¸¯Çϰųª, Æ÷Ä¿½º¸¦ °¡Áø »óÅ¿¡¼ °ø¹éÅ°¸¦ ´©¸£¸é ¾×¼Ç À̺¥Æ®°¡ ¹ß»ýÇÑ´Ù. ¾×¼ÇÀº
¸í·ÉÀÌ Àü´ÞµÇ¾ú´Ù´Â ¶æÀ̸ç Å°º¸µå³ª ¸¶¿ì½ºÀÇ ¹°¸®ÀûÀÎ À̺¥Æ®º¸´Ù °í¼öÁØÀÇ ³í¸®ÀûÀÎ À̺¥Æ®ÀÌ´Ù. Ŭ¸¯À̳ª
Å°º¸µå ´©¸§Àº µÑ ´Ù ¸í·ÉÀ» ½ÇÇàÇ϶ó´Â ¾×¼Ç À̺¥Æ®¸¦ ¹ß»ý½ÃŲ´Ù. ´ÙÀ½ ¸Þ¼µå·Î ¾×¼Ç À̺¥Æ®°¡ ¹ß»ýÇßÀ»
¶§ÀÇ µ¿ÀÛÀ» ó¸®ÇÒ ¸®½º³Ê¸¦ ÁöÁ¤Çϰųª Á¦°ÅÇÑ´Ù.
void addActionListener(ActionListener l)
removeActionListener(ActionListener l)
ActionListener ÀÎÅÍÆäÀ̽º´Â ¾×¼Ç, ±¸Ã¼ÀûÀ¸·Î´Â ¹öÆ° Ŭ¸¯¿¡ ´ëÇÑ À̺¥Æ®¸¦ ó¸®ÇÏ´Â Çڵ鷯¸¦ °¡Áö¸ç Ŭ¸¯½Ã ´ÙÀ½ ¸Þ¼µå°¡ È£ÃâµÈ´Ù.
void actionPerformed(ActionEvent e)
ÀÌ ¸Þ¼µå¿¡ ¹öÆ° Ŭ¸¯½Ã¿¡ ÇؾßÇÒ µ¿ÀÛÀ» ±â¼úÇÏ¿© »ç¿ëÀÚÀÇ Å¬¸¯ µ¿ÀÛ¿¡ ¹ÝÀÀÇÑ´Ù. ´ÙÀ½ ¿¹Á¦´Â ¹öÆ° Ŭ¸¯½Ã ¸Þ½ÃÁö ¹Ú½º¸¦ Ãâ·ÂÇÑ´Ù.
click |
import java.awt.*; import java.awt.event.*; import javax.swing.*; class JavaTest { public
static void main(String[] args) { JFrame
frame = new JFrame("First Swing Application"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setPreferredSize(new
Dimension(300,200)); frame.setLocation(500,
500); JButton
button = new JButton("Click"); //
¨è ¸®½º³Ê °´Ã¼ »ý¼º ActionListenerImpl
listener = new ActionListenerImpl(); //
¨é ¸®½º³Ê ÁöÁ¤ button.addActionListener(listener); Container
cp = frame.getContentPane(); cp.add(button); frame.pack(); frame.setVisible(true); } } // ¨ç ¸®½º³Ê
Ŭ·¡½º Á¤ÀÇ class ActionListenerImpl implements ActionListener
{ public
void actionPerformed(ActionEvent event) { JOptionPane.showMessageDialog(null,
"¹öÆ°À» Ŭ¸¯ÇÏ¿´½À´Ï´Ù."); } } |
Ŭ¸¯ À̺¥Æ®¸¦ ó¸®ÇÏ·Á¸é ´ÙÀ½ ¼¼ °¡Áö Äڵ带 ÀÛ¼ºÇÑ´Ù. µ¿ÀÛ Á¤ÀÇ¿Í
°´Ã¼ »ý¼º, ¸®½º³Ê ÁöÁ¤ µî ¿©·¯ °¡Áö ÀýÂ÷°¡ ÇÊ¿äÇÏ´Ù.
l ActionListener ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â ActionListenerImpl
Ŭ·¡½º¸¦ Á¤ÀÇÇÏ°í actionPerformed ¸Þ¼µå¸¦ ÀçÁ¤ÀÇÇÏ¿© Ŭ¸¯½ÃÀÇ µ¿ÀÛÀ» ó¸®ÇÑ´Ù.
l ÀÎÅÍÆäÀ̽º
±¸Çö Ŭ·¡½ºÀÇ °´Ã¼¸¦ »ý¼ºÇÑ´Ù. Äڵ忡¼´Â listener¶ó´Â
À̸§À¸·Î ¸®½º³Ê °´Ã¼¸¦ »ý¼ºÇß´Ù.
l addActionListener ¸Þ¼µå·Î Ŭ¸¯½ÃÀÇ µ¿ÀÛÀ» ó¸®ÇÒ ¸®½º³Ê¸¦ ÁöÁ¤ÇÑ´Ù.
ÀÌÁ¦ ¹öÆ°À» Ŭ¸¯ÇÏ¸é ¸Þ½ÃÁö ¹Ú½º°¡ ¿·Á »ç¿ëÀÚÀÇ µ¿ÀÛ¿¡ ¹ÝÀÀÇÑ´Ù. »ç¿ëÀÚÀÇ
Ŭ¸¯ µ¿ÀÛ¿¡ ´ëÇØ ¾×¼Ç ¸®½º³ÊÀÇ actionPerformed ¸Þ¼µå°¡ È£ÃâµÇ¸ç ¿©±â¼ Ŭ¸¯¿¡ ´ëÇÑ Ã³¸®¸¦
¼öÇàÇÑ´Ù.
showMessageDialog ¸Þ¼µå´Â °£´ÜÇÑ Àü´Þ »çÇ×À» ´ëÈ»óÀÚ·Î
º¸¿©ÁØ´Ù. Çڵ鷯°¡ È£ÃâµÇ¾úÀ½À» È®ÀÎÇϱâ À§ÇØ Á¦ÀÏ °£´ÜÇÑ ´ëÈ»óÀÚ¸¦ ¿¾ú´Âµ¥ ½ÇÁ¦ ÇÁ·ÎÁ§Æ®¿¡¼´Â °è»ê
½ÃÀÛ, ÆÄÀÏ ÀúÀå, ³×Æ®¿÷ ¿¬°á µî ¸í·ÉÀ» ó¸®ÇÏ´Â Äڵ带
ÀÛ¼ºÇÑ´Ù.
À̺¥Æ® ó¸® ÀÚü´Â ¾î·ÆÁö ¾ÊÁö¸¸ °£´ÜÇÑ Å¬¸¯ À̺¥Æ®
Çϳª¸¦ ó¸®Çϴµ¥ ³Ê¹« ¸¹Àº Äڵ带 ÀÛ¼ºÇÏ¿© ¹øÀ⽺·´´Ù. ¸Å À̺¥Æ®¸¦ ó¸®ÇÒ ¶§¸¶´Ù ¸®½º³Ê¸¦ ÀÏÀÏÀÌ
Á¤ÀÇÇÏ´Â °ÍÀº ³Ê¹« ¹ø°Å·Ó±â ¶§¹®¿¡ ÀÚ¹Ù´Â À̺¥Æ® Çڵ鷯¸¦ ª°Ô ÀÛ¼ºÇÏ´Â Ãà¾àµÈ ¹®¹ýÀ» Á¦°øÇÑ´Ù.