IT/자바
instanceof 설명
Beautifulkim
2018. 5. 9. 13:52
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); } } }