MyMain_Menu.java
package mymain;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
// awt -> 확장 -> swing
// Frame JFrame
public class MyMain_Menu extends JFrame implements ActionListener {
public MyMain_Menu() {
super("내가만든 윈도우-메뉴추가");
// 메뉴
init_menu();
// 버튼생성
JButton bt1 = new JButton("빨강");
this.add(bt1, "East");
// 버튼이벤트 등록
// 이것도 AddActionListenner를 사용\\\\\\\\\\\\\\\\
bt1.addActionListener(this);
// 위치
// this.setLocation(200, 100);
// 크기지정
// this.setSize(400, 300);
// 위치 + 크기정보
this.setBounds(200, 100, 400, 300);
// 보여줘라
this.setVisible(true);
// 종료코드
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private void init_menu() {
// 메뉴바
JMenuBar menuBar = new JMenuBar();
// 메뉴
JMenu menu_color = new JMenu("색상");
JMenu menu_help = new JMenu("도움말");
// 메뉴바에 메뉴 추가
menuBar.add(menu_color);
menuBar.add(menu_help);
// 색상메늉 메뉴아이템 추가
JMenuItem itemR = new JMenuItem("빨강");
JMenuItem itemG = new JMenuItem("초록");
JMenuItem itemB = new JMenuItem("파랑");
JMenuItem itemW = new JMenuItem("흰색");
JMenuItem itemExit = new JMenuItem("종료");
menu_color.add(itemR);
menu_color.add(itemG);
menu_color.add(itemB);
menu_color.add(itemW);
menu_color.addSeparator();// 구분선
menu_color.add(itemExit);
// 현재 프레임에 메뉴바 추가
this.setJMenuBar(menuBar);
// 메뉴(아이템) 이벤트 처리 + 버튼이벤트 + 타이머이벤트 = addActionListener 사용
/*
* actionPerformed(ActionEvent e) 호출
*/
itemR.addActionListener(this);
itemG.addActionListener(this);
itemB.addActionListener(this);
itemW.addActionListener(this);
itemExit.addActionListener(this);
}
public static void main(String[] args) {
new MyMain_Menu();
}
@Override
public void actionPerformed(ActionEvent e) {
/*
System.out.println(e); System.out.println(new Date(e.getWhen()));
*/
// ActionEvent e : Event Source 정보(이벤트를 발생시킨 객체정보)
Object evt_ob = e.getSource();
String cmd = e.getActionCommand();// 이벤트를 발생시킨 컨트롤의 캡션
// System.out.println(cmd);
if (evt_ob instanceof JMenuItem) {
System.out.printf("메뉴에서 선택된 : %s\n", cmd);
if(cmd.equals("빨강"))
getContentPane().setBackground(Color.RED);
else if(cmd.equals("초록"))
getContentPane().setBackground(Color.GREEN);
else if(cmd.equals("파랑"))
getContentPane().setBackground(Color.BLUE);
else if(cmd.equals("흰색"))
getContentPane().setBackground(Color.WHITE);
} else if(evt_ob instanceof JButton) {
System.out.printf("버튼에서 선택된 : %s\n", cmd);
((JButton)evt_ob).setBackground(Color.RED);
}
}
}