ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 10. oop12 - (1) Note Demo (익명 객체 사용)
    java/코드 리뷰 2020. 4. 3. 08:55
    1
    2
    3
    4
    5
    6
    7
    8
    package oop12;
     
    public interface MouseClick {
        
        void handle();
        
    }
     
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    package oop12;
    /**
     * 익명 클래스
     * @author HYB
     *
     */
    public class GUI {
        public static void main(String[] args) {
            
            MouseClick c1 = new MouseClick() {
                public void handle() {
                    System.out.println("새 창을 연다.");
                }
            };
            
            MouseClick c2 = new MouseClick() {
                public void handle() {
                    System.out.println("파일 탐색창을 연다.");
                }
            };
            
            c1.handle();
            c2.handle();
            
        }
    }
     
     
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    package oop12;
     
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
     
    public class Note extends JFrame {
     
        JMenuBar menuBar = new JMenuBar();
        JMenu fileMenu = new JMenu("파일");
        JMenu editMenu = new JMenu("편집");
        JMenu helpMenu = new JMenu("도움말");
        JTextArea textArea = new JTextArea();
     
        JMenuItem newMenuItem = new JMenuItem("새 파일");
        JMenuItem openMenuItem = new JMenuItem("열기");
        JMenuItem saveMenuItem = new JMenuItem("저장하기");
        JMenuItem exitMenuItem = new JMenuItem("끝내기");
     
        public Note() {
            setLayout(new BorderLayout());
            
            // 새 파일 메뉴 클릭시 실행될 익명 객체
            ActionListener al1 = new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    JOptionPane.showMessageDialog(null"새 파일을 엽니다.");
                }
            };
     
            JFileChooser chooser = new JFileChooser();
            // 열기 메뉴 클릭시 실행될 익명 객체
            ActionListener al2 = new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    chooser.showOpenDialog(null);
                }
            };
     
            // 저장하기 메뉴 클릭시 실행될 익명 객체
            ActionListener al3 = (e) -> {
                chooser.showSaveDialog(null);
            };
     
            // 끝내기 메뉴 클릭시 실행될 익명 객체
            ActionListener al4 = (e) -> {
                System.exit(0);
            };
            
            // 각 메뉴아이템에 클릭 시 실행될 메서드를 가지고 있는 익명객체 등록시키기
            newMenuItem.addActionListener(al1);
            newMenuItem.addActionListener(al2);
            newMenuItem.addActionListener(al3);
            newMenuItem.addActionListener(al4);
     
            fileMenu.add(newMenuItem);
            fileMenu.add(openMenuItem);
            fileMenu.add(saveMenuItem);
            fileMenu.addSeparator();
            fileMenu.add(exitMenuItem);
     
            menuBar.add(fileMenu);
            menuBar.add(editMenu);
            menuBar.add(helpMenu);
     
            setJMenuBar(menuBar);
            
            add(new JScrollPane(textArea), BorderLayout.CENTER);
     
            setBounds(100100600400);
            setVisible(true);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
        }
     
        public static void main(String[] args) {
            new Note();
        }
    }
     
     
Designed by Tistory.