안녕하세요... 이번에는 JAVA를 데리고 왔습니다...
목차
AWT Swing Event와 Event Handler
AWT
란 GUI를 구축하기 위한 클래스의 모음이다. 종류로는 사용자 Interface클래스와 그래픽 처리 클래스가 있다. GUI 프로그래밍(윈도우 프로그래밍)을 위한 도구로, Java로 구현하지 않고 운영체제의 컴포넌트를 그대로 사용하는 것이다. 이러한 특징을 보았을 때, 운영체제에 종속적인 것을 알 수 있다!
즉, AWT 관련 패키지는 모두 java.awt로 시작하고, AWT Component의 최상위 조상은 java.awt.Component 클래스이다. (메뉴 관련 컴포넌트를 제외하고!!)
Method | 기능 |
Public Dimension getSize() | Component 현재의 크기를 Dimesion 클래스 객체로 반환 |
Public void setForeground(Color c) | Text 색 결정 |
Public void setBackground(Color c) | Text 외의 색 결정 |
Public void setFont(Font f) | Font 설정 |
Public void setEnalbed(boolean b) | false: inactive status |
void setBounds(int x, int y, int width, int height) | Component 위치 지정 |
void setSize(Diemesion d) | Component 크기 지정 |
coid setVisible(boolean b) | true: 화면에 출력, false: 화면에서 사라짐 |
(1) Component 생성
(2) 컨테이너 Layout
(3) EventHandler 작성
Component | 기능 |
Label | 고정 문자열 표시 |
Buttton | 버튼 |
TextField | 1 line 문자열 입력 |
TextArea | 여러 line 문자열 입력 |
CheckBox | 체크박스, 옵션 버튼을 작성 |
Choice | Drop-Down 리스트를 작성 |
Canvas | 그리기 공간 작성 |
List | 리스트 작성 |
Scrollbar | 스크롤바 작성 |
Swing이란 순수한 자바 언어로 지원되는 GUI 개발 도구이다. Swing은 플랫폼에 독립적이고 (AWT는 종속적!!), 새로운 Component 제작이 쉽다. 또, ToolTip 기능을 제공하며 AWT Component를 지원한다. AWT를 확장한 GUI 프로그래밍 도구로써 AWT보다 더 많은 종류의 컴포넌트를 제공한다.
java.lang.Object -> java.lang.Component -> java.awt.Container -> javax.swing.jComponent
Event란 사용자 혹은 프로그램에 의해 발생할 수 있는 하나의 사건이라고 정의된다.
Event 처리 과정
1. Component | |
2. 확인 버튼 클릭 | 이벤트 발생 |
3. EventHandler |
Event Source | Event를 발생시키는 Button, Scrollbar, Mouse, Keyboard, ... 등의 Component |
Event Class | 특정 Component에 따라 발생하는 Event를 분류한 것을 의미 |
Event Handler | Event 처리를 위한 클래스 |
Event Class | Comment |
ActionEvent | Component가 활성화될 때 발생 |
AdjustmentEvent | 스크롤바와 같이 조정 가능한 Component에서 조정이 있을 때 발생 |
ContainerEvent | Container에 Component가 추가 및 삭제되는 경우 발생 |
FocusEvent | Component에 focus가 들어왔을 때 발생 |
ItemEvent | List, Choice, ... 등의 Component에 선택 항목이 선택될 때 발생 |
KeyEvent | 키보드 입력에 의해서 발생 |
MouseEvent | 마우스 움직임에 의해서 발생 |
PaintEvent | Component가 그려져야 할 때 발생 |
TextEvent | Text Component의 내용이 변화할 때 발생 |
WindowEvent | Window 활성화, 또는 종료할 때 발생 |
각 Evnet를 처리하기 위해 준비된 method를 선언한 Interface. (Event + Listener)
cf.
Event Source (이벤트 발생지) : 이벤트가 발생한 컴포넌트
Event Handler (이벤트 처리기) : 이벤트 발생 시 실행될 코드를 구현
Event Listener (이벤트 감지기) : 이벤트를 감지하고
예제
class MyActionListener implemnets ActionListener
{
public void actionPerformed(ActionEvent ae)
{
System.out.println("Action Event가 발생했습니다.");
}
}
소스코드는 MainFrame과 Button Handler부분만 작성함!
Source
/**
*
* @author hansohee
*/
public class MainFrame extends javax.swing.JFrame {
public MainFrame() {
initComponents(); // jLabel과 jButton이 생성되는 메서드
jLabel1.setVisible(false); // 프로그램 실행 시 Label이 안 보이도록 설정.
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
// jLabel1.setText("확인(OK) BUtton Click"); // 버튼 클릭하면 Label이름 변경
jLabel1.setText("Inha Technical Colleg![](https://velog.velcdn.com/images/haansohee/post/e812fc2d-d626-4ad9-a3a3-a76511e9f401/image.JPG)
e 202144020 한소희");
jLabel1.setVisible(true);
}
}
Design
실행 결과