본문 바로가기

IT/자바

instanceof 설명

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);
		}

	}
}


'IT > 자바' 카테고리의 다른 글

내부클래스 설명  (0) 2018.05.09
키 이벤트( 총알 )  (0) 2018.05.09
키이벤트 ( 대각선 )  (0) 2018.05.09
배경 바꾸기  (0) 2018.05.09
윈도우 메뉴 추가하기  (0) 2018.05.09