27-3-1.À̺¥Æ® µå¸®ºì

¾Õ Àý¿¡¼­ ·¹À̾ƿô ½Ç½ÀÀ» À§ÇØ ¹öÆ°À» ¸ÚÁö°Ô ¹èÄ¡ÇßÁö¸¸ ¾ÆÁ÷Àº ´­·¯µµ ¹ÝÀÀÀÌ ¾ø´Ù. ¹öÆ° Ç¥¸éÀÇ »ö»óÀÌ ¹Ù²î¸ç ´­·¯Áö´Â È¿°ú´Â ³ªÅ¸³ªÁö¸¸ À̺¥Æ®¸¦ ó¸®ÇÏÁö ¾Ê¾Æ ¾Æ¹« µ¿ÀÛµµ ÇÏÁö ¾Ê´Â´Ù. ¿©±â¼­´Â ÄÄÆ÷³ÍÆ®ÀÇ À̺¥Æ®¸¦ ó¸®ÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ½Ç½ÀÇØ º¸ÀÚ.

À̺¥Æ®´Â »ç¿ëÀÚ³ª Äڵ忡 ÀÇÇØ ¹ß»ýÇÏ´Â ÀÏüÀÇ º¯È­ÀÌ´Ù. ¸¶¿ì½º ¹öÆ°À» Ŭ¸¯Çߴٰųª Å°º¸µå¸¦ ´­·¶´Ù´Â ½ÅÈ£°¡ À̺¥Æ®ÀÇ ÀüÇüÀûÀÎ ¿¹ÀÌ¸ç ½Ã°£ °æ°ú³ª Æ÷Ä¿½º º¯È­ µî ÁÖº¯ »óȲÀÌ ¹Ù²î´Â °Íµµ ÀÏÁ¾ÀÇ À̺¥Æ®ÀÌ´Ù. ÇÁ·Î±×·¥ÀÌ »ç¿ëÀÚÀÇ Áö½Ã¸¦ ¹Þ¾ÆµéÀÌ°í »óÈ£ ÀÛ¿ëÇÏ·Á¸é À̺¥Æ®¿¡ ´ëÀÀµÇ´Â µ¿ÀÛÀ» ó¸®ÇØ¾ß ÇÑ´Ù.

À̺¥Æ®¿¡ ¹ÝÀÀÇÏ¿ä µ¿ÀÛÇÏ´Â ¹æ½ÄÀ» À̺¥Æ® µå¸®ºìÀ̶ó°í ÇÑ´Ù. À̺¥Æ® ó¸®¿Í °ü·ÃµÈ Ŭ·¡½º´Â ¸ðµÎ 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 ¸Þ¼­µå´Â °£´ÜÇÑ Àü´Þ »çÇ×À» ´ëÈ­»óÀÚ·Î º¸¿©ÁØ´Ù. Çڵ鷯°¡ È£ÃâµÇ¾úÀ½À» È®ÀÎÇϱâ À§ÇØ Á¦ÀÏ °£´ÜÇÑ ´ëÈ­»óÀÚ¸¦ ¿­¾ú´Âµ¥ ½ÇÁ¦ ÇÁ·ÎÁ§Æ®¿¡¼­´Â °è»ê ½ÃÀÛ, ÆÄÀÏ ÀúÀå, ³×Æ®¿÷ ¿¬°á µî ¸í·ÉÀ» ó¸®ÇÏ´Â Äڵ带 ÀÛ¼ºÇÑ´Ù.

À̺¥Æ® ó¸® ÀÚü´Â ¾î·ÆÁö ¾ÊÁö¸¸ °£´ÜÇÑ Å¬¸¯ À̺¥Æ® Çϳª¸¦ ó¸®Çϴµ¥ ³Ê¹« ¸¹Àº Äڵ带 ÀÛ¼ºÇÏ¿© ¹øÀ⽺·´´Ù. ¸Å À̺¥Æ®¸¦ ó¸®ÇÒ ¶§¸¶´Ù ¸®½º³Ê¸¦ ÀÏÀÏÀÌ Á¤ÀÇÇÏ´Â °ÍÀº ³Ê¹« ¹ø°Å·Ó±â ¶§¹®¿¡ ÀÚ¹Ù´Â À̺¥Æ® Çڵ鷯¸¦ ª°Ô ÀÛ¼ºÇÏ´Â Ãà¾àµÈ ¹®¹ýÀ» Á¦°øÇÑ´Ù.