관리 메뉴

오버플로

[Java] Menu / Event Handling 본문

Java

[Java] Menu / Event Handling

NACO 2021. 8. 19. 20:29

 1. Menu 

- 프로그램에서 제공하는 기능을 고정된 위치에서 한 번에 제공할 때 사용

- MenuBar, Menu, MenuItem 3가지로 구성

  • MenuBar : 메뉴를 저장하고 보여주는 일
  • Menu : 제공할 서비스의 그룹을 묶는 일
  • MenuItem : 제공할 기능 

- 사용법)

1) JMenuItem 생성

           JMenuItem jmi = new JmenuItem(“메뉴 아이템 이름”);

2) JMenu 생성

           JMenu jm = new JMenu(“메뉴 이름”);

3) JMenuItem을 JMenu에 배치

           jm.add(jmi);

    ** 메뉴 아이템간 구분선 설정(배치되는 JMenuItem이 구분되어야 할 때) :  jm.addSeparator();

4) JMenuBar를 생성

           JMenuBar jmb = new JMenuBar();

5) JMenuBar에 JMenu를 배치

           jmb.add(jm);

6) JMenuBar를 JFrame에 설정

           setMenuBar(jmb);

 

 2. Event Handling (이벤트 처리) 

- 사용자의 동작에 대응하는 실행코드를 작성하는 것

- 사용자의 동작은 xxListener라는 인터페이스에서 감지함

- java.awt.event패키지에서 관련 클래스를 제공

- swing에서 새로 추가된 컴포넌트의 이벤트는 javax.swing.event 패키지에서 관련 Class를 제공

동작 발생 이벤트(class) 처리 리스너(interface) 주로 발생하는 컴포넌트
버튼클릭,
엔터누름
ActionEvent ActionListener 클릭 : JButton, JComboBox
엔터 : JTextField, JPasswordField
윈도우 기능버튼
눌림
WindowEvent WindowListener JWindow, JDialog
키가 눌렸을 때 KeyEvent KeyListener JTextField, JPasswordField, JTextArea
마우스가 눌렸을때 MouseEvent MouseListener 모든 컴포넌트
마우스가 움직였을 때 MouseMotionEvnet MouseMotionListener 모든 컴포넌트
아이템이 선택되었을 때 ItemEvent ItemListener java.awt.List, java.awt.Choice

- 클래스는 JVM위에 있는데, 사용자 action을 listener하는 기능이 없으면 JVM은 액션을 무시함

- 이벤트 처리순서)

1. 발생한 이벤트를 처리할 청취인터페이스(xxxListener)를 구현

           public class Test extends JFrame implements ActionListener{ }

2. 인터페이스의 abstract method를 Override

           public void actionPerformed(ActionEvent ae) {

3. 컴포넌트를 이벤트에 등록하고, 이벤트가 발생했을 때 처리할 객체를 넣어줌
    컴포넌트(jbtn)를 이벤트에 등록(addXXXlistener)시키고 이벤트를 처리할 객체를 넣어줌

'Java' 카테고리의 다른 글

[Java] JOptionPane / JDialog  (0) 2021.08.22
[Java] Adapter Class  (0) 2021.08.20
[Java] MVC Pattern  (0) 2021.08.18
[Java] Layout Manager (배치관리자)  (0) 2021.08.17
[Java] JFC / Swing / Component  (0) 2021.08.15
Comments