일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- DB
- transient
- Reader
- 8bit
- where
- statement
- 상속
- Annotaion
- Serializable
- java
- set
- JDBC
- 예외처리
- select
- swing
- DB연동
- Transaction
- InputStream
- 오라클
- 다이얼로그
- Join
- array
- driver
- 16bit
- 자바
- 난수
- 조회
- stream
- Connection
- Oracle
- Today
- Total
오버플로
[Java] Menu / Event Handling 본문
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 |