¼Ò¼³°°ÀºÀÚ¹Ù3ºÎ  13Àå AWT  13.10.4 ´ëÈ­»óÀÚ(Dialog)  

 

13.10.4 ´ëÈ­»óÀÚ(Dialog)

 

   ´ëÈ­»óÀÚ(Dialog)´Â ÃÖ»óÀ§ À©µµ¿ì(top-level window)ÀÇ ÀÚ½Ä À©µµ¿ì·Î¼­ ÀϹÝÀûÀ¸·Î »ç¿ëÀڷκÎÅÍ Á¤º¸¸¦ ¾ò±â À§ÇØ »ç¿ëµË´Ï´Ù. Dialog´Â »ç¿ëÀÚµéÀÌ ÆÄÀÏÀ» ¼±ÅÃÇÏ¿© ¿­±â µîÀÇ ÀÛ¾÷À» ½±°Ô Çϵµ·Ï ÇÕ´Ï´Ù. ÆÄÀÏ ÀÛ¾÷À» ½±°ÔÇϱâ À§ÇØ Á¦°øÇÏ´Â ÄÄÆ÷³ÍÆ®°¡ FileDialogŬ·¡½ºÀÔ´Ï´Ù. Dialog´Â FrameÀ©µµ¿ì¿Í ºñ½ÁÇѵ¥ ±× Â÷ÀÌÁ¡À» »ìÆìº¸¸é, ´ëÈ­»óÀÚ´Â À©µµ¿ì¿¡ Á¾¼ÓÀûÀ̱⠶§¹®¿¡ ±× À©µµ¿ì°¡ ´ÝÈ÷¸é ´ëÈ­»óÀÚµµ µû¶ó¼­ °°ÀÌ ´ÝÈ÷°Ô µÈ´Ù´Â °ÍÀÔ´Ï´Ù. ¶ÇÇÑ À©µµ¿ì¸¦ ÃÖ¼ÒÈ­½ÃÄѵµ ´ëÈ­»óÀÚ´Â »ç¶óÁö°Ô µË´Ï´Ù.

 

´ëÈ­»óÀÚ´Â modalÀ̰ųª modelessÇü½ÄÀÔ´Ï´Ù. modal´ëÈ­»óÀÚ´Â ´ëÈ­»óÀÚ°¡ Ȱ¼ºÈ­ µÈ ÈÄ ¸ðµç ÀÛ¾÷Àº ÀÌ ´ëÈ­»óÀÚ¿¡¼­¸¸ ÀÌ·ç¾îÁø´Ù´Â °ÍÀÔ´Ï´Ù. Áï, ´ëÈ­»óÀÚ¸¦ ´ÝÀ» ¶§±îÁö´Â ´Ù¸¥ ÀÛ¾÷Àº ÇÒ ¼ö ¾ø°Ô ÇÕ´Ï´Ù. ¹Ý´ë·Î modeless´ëÈ­»óÀڴ Ȱ¼ºÈ­ µÈ ÈÄ¿¡µµ ¶Ç ´Ù¸¥ À©µµ¿ì·Î ³Ñ¾î°¡ ÀÛ¾÷À» ÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ëÈ­»óÀÚ´Â ±âº» default·Î modelessÀÔ´Ï´Ù.

 

¾Æ·¡ÀÇ ¿¹Á¦´Â ´ëÈ­»óÀÚ¸¦ Çϳª ¿­°í ¹®ÀÚ¿­À» ÀԷ¹ÞÀºÈÄ, ¡®¼³Á¤¡¯ ¹öưÀ» ´©¸£¸é, ´ëÈ­»óÀÚ°¡ Á¾¼ÓµÈ À©µµÀ§ÀÇ Å¸ÀÌÆ² ¹ÙÀÇ Á¦¸ñÀ» ÀÔ·ÂµÈ ¹®ÀÚ¿­·Î ¹Ù²Ù°í ´ëÈ­»óÀÚ¸¦ ´Ý½À´Ï´Ù. ÀÌ ¿¹Á¦¿¡¼­´Â ¡®¼³Á¤¡¯¹öưÀ» Ŭ¸¯ÇÏ¿´À» ¶§ ÅØ½ºÆ® ÇʵåÀÇ °ªÀ» ³Ñ±â±â À§ÇÏ¿© ActionListenerÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ¿© »ç¿ëÇÏ¿´½À´Ï´Ù.

 

DialogTest.java(´ëÈ­»óÀÚ¸¦ Å×½ºÆ®Çϱâ À§ÇÑ ¿¹Á¦)

import java.awt.*;

import java.awt.event.*;

class TitleBox extends Dialog implements ActionListener {

   private TextField field;

   private Button button;

   private Frame parent;

   public TitleBox(Frame dw, String title) {

       super(dw, title, false);

       parent = dw;

       setLayout(new FlowLayout());

       field = new TextField(15);

       button = new Button("¼³Á¤");

       button.addActionListener(this);

       add(field);

       add(button);

       pack();

   }

   public void actionPerformed(ActionEvent e) {

       parent.setTitle(field.getText());

       field.selectAll();

       setVisible(false);

   }

}

public class DialogTest extends Frame {

   public DialogTest() {

       TitleBox titleBox = new TitleBox(this, "Á¦¸ñÀ» ÀÔ·ÂÇϼ¼¿ä");

       setLayout(new FlowLayout());

       titleBox.show();

   }

   public static void main(String[] args) {

       DialogTest f = new DialogTest();

       f.setSize(200, 100);

       f.setVisible(true);

   }

}

C:\JavaExample\13>javac DialogTest.java

C:\JavaExample\13>java DialogTest

 

¿¹Á¦¸¦ ½ÇÇà½Ã۸é À§ °á°úÈ­¸éÀÇ ¿ÞÂʰú °°ÀÌ ¹ÙÅÁÀÇ Á¦¸ñ¾ø´Â À©µµ¿ì¿Í ´ëÈ­»óÀÚ°¡ ³ªÅ¸³³´Ï´Ù. ±×·±ÈÄ ÅØ½ºÆ® Çʵ忡 ¡°¼Ò¼³ ÀÚ¹Ù¡±¶ó°í ÀÔ·ÂÇÑ ÈÄ ¡®¼³Á¤¡¯¹öưÀ» ´©¸£¸é ¿À¸¥Âʰú °°ÀÌ ¡°¼Ò¼³ ÀÚ¹Ù¡±¹®ÀÚ¿­ÀÌ Á¾¼ÓµÈ À©µµ¿ìÀÇ Å¸ÀÌÆ² ¹Ù¿¡ ³ªÅ¸³ª°í, ´ëÈ­»óÀÚ´Â »ç¶óÁý´Ï´Ù.

 

¸ÕÀú, DialogŬ·¡½º¸¦ »ó¼Ó¹Þ°í, ¹öưÀÇ À̺¥Æ®¸¦ 󸮸¦ Çϱâ À§ÇØ ActionListener¸¦ ±¸ÇöÇÏ¿© TitleBoxŬ·¡½º¸¦ »ý¼ºÇÕ´Ï´Ù.

 

n        class TitleBox extends Dialog implements ActionListener

 

ÅØ½ºÆ®Çʵå, ¹öư, FrameÀ» Çϳª¾¿ ¼±¾ðÇÕ´Ï´Ù.

 

n        TextField field;

n        Button button;

n        Frame parent;

 

TitleBoxÀÇ LayoutÀ» FlowLayoutÀ¸·Î ¼³Á¤Çϰí 15Å©±âÀÇ ÅØ½ºÆ®Çʵ尴ü field¿Í ¡®¼³Á¤¡¯À̶ó´Â À̸§ÀÇ ¹öư°´Ã¼ buttonÀ» ¸¸µé¾î Ãß°¡ÇÕ´Ï´Ù.

 

n        setLayout(new FlowLayout());

n        field = new TextField(15);

n        button = new Button("¼³Á¤");

n        button.addActionListener(this);

n        add(field);

n        add(button);

 

¡®¼³Á¤¡¯ ¹öưÀÇ À̺¥Æ®¸¦ ó¸®ÇØ ÁÖ±â À§ÇØ ActionListenerÀÇ ¸Þ¼­µå actionPerformed()¸¦ ÀçÁ¤ÀÇ ÇØ ÁÝ´Ï´Ù. ¿©±â¼­´Â À̺¥Æ®°¡ ¹ß»ý½Ã ÅØ½ºÆ® ÇʵåÀÇ °ªÀ» Á¾¼Ó À©µµ¿ìÀÇ Å¸ÀÌÆ² ¹Ù·Î ³Ñ±â°í ÀÚ±â ÀÚ½ÅÀÇ À©µµ¿ì¸¦ »ç¶óÁö°Ô ÇÕ´Ï´Ù.

 

n        public void actionPerformed(ActionEvent e) {

n           parent.setTitle(field.getText());

n           field.selectAll();

n           setVisible(false);

n        }

 

main¸Þ¼­µå¿¡¼­ DialogTest°´Ã¼ f¸¦ »ý¼ºÇÏ¿© 200*100Å©±âÀÇ ´ëÈ­»óÀÚ¸¦ ¶ç¿ó´Ï´Ù.

 

n        DialogTest f = new DialogTest();

n        f.setSize(200, 100);

n        f.setVisible(true);

 

Java¿¡¼­´Â DialogÄÞÆ÷³ÍÆ®¸¦ Á¦°øÇÏ¿© ´ëÈ­»óÀÚ(dialog box)¸¦ ¸¸µé¼ö ÀÖµµ·Ï ÇØ ÁÝ´Ï´Ù.

 ´ëÈ­»óÀÚ´Â ÄÁÆ®·ÑÀ» Ãß°¡ÇÏ¿© ¿©·¯°¡Áö ÀÛ¾÷À» ÇÒ ¼ö ÀÖ´Â ±â¹ÝÀ» ¸¶·ÃÇϴ°Ͱú °°ÀÌ FrameÀ©µµ¿ì¿Í °°Àº ÀÛ¾÷À» ÇÏÁö¸¸ Å« Â÷ÀÌÁ¡Àº À§¿¡¼­ ¼³¸íÇÑ´ë·Î modal, modaless»óŸ¦ °¡Áú ¼ö ÀÖ´Ù´Â Á¡ÀÔ´Ï´Ù. ´ÙÀ½À¸·Î´Â ´ëÈ­»óÀÚ¸¦ ÀÌ¿ëÇÏ¿© ¸¸µå´Â À¯¿ëÇÑ ÇÏÀ§ Ŭ·¡½ºÁß ÇϳªÀÎ FileDialog¸¦ »ìÆìº½À¸·Î½á ´ëÈ­»óÀÚÀÇ À¯¿ë¼ºÀ» Á» ´õ ¾Ë¾Æº¸°Ú½À´Ï´Ù.

 

Dialog »ý¼ºÀÚ¸Þ¼­µå

public Dialog(Dialog owner), Dialog(Frame owner) : À̸§ÀÌ ¾ø°í, ÁÖ¾îÁø Frame ¶Ç´Â ´ëÈ­»óÀÚ¿¡ owner¿¡ Á¾¼ÓµÇ°í, non-modalÀÎ ´ëÈ­»óÀÚ¸¦ »ý¼ºÇϴµ¥, Ãʱ⿡´Â º¸ÀÌÁö ¾Êµµ·Ï ¼³Á¤µË´Ï´Ù.

public Dialog(Frame owner, boolean modal) : À̸§ÀÌ ¾ø°í, ÁÖ¾îÁø Frame¿¡ Á¾¼ÓµÇ°í, ÁÖ¾îÁø modalÀÇ ´ëÈ­»óÀÚ¸¦ »ý¼ºÇϴµ¥, Ãʱ⿡´Â º¸ÀÌÁö ¾Êµµ·Ï ¼³Á¤µË´Ï´Ù

public Dialog(Dialog owner, String title), Dialog(Frame owner, String title) : À̸§À» title·Î °®°í, ÁÖ¾îÁø Frame ¶Ç´Â ´ëÈ­»óÀÚ¿¡ Á¾¼ÓµÇ°í, non-modalÀÎ ´ëÈ­»óÀÚ¸¦ »ý¼ºÇϴµ¥, Ãʱ⿡´Â º¸ÀÌÁö ¾Êµµ·Ï ¼³Á¤µË´Ï´Ù.

public Dialog(Dialog owner, String title, boolean modal), Dialog(Frame owner, String title, boolean modal) : À̸§À» title·Î °®°í, ÁÖ¾îÁø Frame ¶Ç´Â ´ëÈ­»óÀÚ¿¡ Á¾¼ÓµÇ°í,  modalÀÎ ´ëÈ­»óÀÚ¸¦ »ý¼ºÇϴµ¥, Ãʱ⿡´Â º¸ÀÌÁö ¾Êµµ·Ï ¼³Á¤µË´Ï´Ù.

 

Dialog ÁÖ¿ä ¸Þ¼­µå

public String getTitle() : ´ëÈ­»óÀÚÀÇ Á¦¸ñÀ» ¾ò½À´Ï´Ù.

public boolean isModal() : ´ëÈ­»óÀÚ°¡ modalÀÎÁö ¿©ºÎ¸¦ ¾ò½À´Ï´Ù.

public boolean isResizable() : ´ëÈ­»óÀÚ°¡ »ç¿ëÀÚ¿¡ ÀÇÇØ Å©±â º¯È­°¡ °¡´ÉÇÑÁö ¿©ºÎ¸¦ ¾ò½À´Ï´Ù.

public void setTitle(String title) : ´ëÈ­»óÀÚÀÇ Á¦¸ñÀ» title·Î ¼³Á¤ÇÕ´Ï´Ù.

public void setResizable(boolean resizable) : ´ëÈ­»óÀÚÀÇ Å©±âº¯È­ÀÇ °¡´É, ºÒ°¡´É ¼³Á¤ÇÕ´Ï´Ù.



jabookÀúÀÚ¸íÇÔ
Á¦¸ñ:¼Ò¼³°°ÀºÀÚ¹Ù3ºÎ
ÀúÀÚ:ÃÖ¿µ°ü