즐거운프로그래밍

[자바] 컴포넌트의 배치(메모장 만들기 예제)

수수께끼 고양이 2023. 10. 24. 13:41
728x90
반응형
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class Main {
    public static void main(String[] args) {
        Frame frame = new Frame();
        frame.setBounds(100, 100, 600, 500);

        // 텍스트 영역 배치
        TextArea ta = new TextArea();
        frame.add(ta, "Center");

        // 메뉴 설정
        MenuBar mbar = new MenuBar();
        Menu menu1 = new Menu("파일");
        MenuItem mitem1 = new MenuItem("새파일");
        MenuItem mitem2 = new MenuItem("열기");
        MenuItem mitem3 = new MenuItem("저장");
        MenuItem mitem4 = new MenuItem("종료");
        menu1.add(mitem1);
        menu1.add(mitem2);
        menu1.add(mitem3);
        menu1.add(mitem4);
        mbar.add(menu1);
        frame.setMenuBar(mbar);

        Menu menu2 = new Menu("편집");
        MenuItem mitem5 = new MenuItem("실행 취소");
        MenuItem mitem6 = new MenuItem("잘라 내기");
        MenuItem mitem7 = new MenuItem("복사");
        MenuItem mitem8 = new MenuItem("붙혀넣기");
        menu2.add(mitem5);
        menu2.add(mitem6);
        menu2.add(mitem7);
        menu2.add(mitem8);
        mbar.add(menu2);
        frame.setMenuBar(mbar);

        frame.setVisible(true);

        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                super.windowClosing(e);
                System.exit(0);
            }
        });

        // 메뉴 입력 처리기
        class MyMenuListener implements ActionListener {
            @Override
            public void actionPerformed(ActionEvent e) {
                String cmdStr = e.getActionCommand();
                System.out.println(cmdStr);
            }
        }

        MyMenuListener mml1 = new MyMenuListener();

        mitem1.addActionListener(mml1);
        mitem2.addActionListener(mml1);
        mitem3.addActionListener(mml1);
        mitem4.addActionListener(mml1);

        MyMenuListener mml2 = new MyMenuListener();

        mitem5.addActionListener(mml2);
        mitem6.addActionListener(mml2);
        mitem7.addActionListener(mml2);
        mitem8.addActionListener(mml2);
    }
}

 

 

텍스트 작성도 가능합니다
실제 메모장처럼 메뉴를 추가하여 셋팅할 수 있습니다

 

 

728x90
반응형