Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- Position
- java
- 반응형 웹 프로젝트
- 미디어쿼리
- 퍼셉트론
- 반응형웹
- FFT
- CSS
- inline
- iframe 태그
- BorderLayout
- rnn
- css 기초
- 푸리에 변환
- html 프로젝트
- 메서드
- ObjectOutputStream
- GridLayout
- Database
- FlowLayout
- html 기초
- FileWriter
- 상속
- HTML
- 사전학습
- 파이썬
- Codility
- g검정
- oracle
- 예제
Archives
- Today
- Total
도라에몽주머니
[Java/Eclipse] Java 42일차 본문

Frame
: 각종 응용프로그램을 위한 윈도우를 제공하는 클래스
- Button
- setBounds(x, y, width, height) : 버튼의 위치 및 크기 지정

ActionListener
: 버튼을 클릭하거나 메뉴를 누르는 등 이벤트가 발생하였을 때 사용되는 이벤트 리스너(Event Listener)
- actionPerformed(ActionEvent e)
class ActionDefine implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0); // 프로그램 강제 종료
}
}
- 이벤트 처리 방법
1. Listener를 상속받은 클래스를 만들어서 사용
import java.awt.Button;
import java.awt.Color;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
// 1) Listener 상속
class ActionDefine implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0); // 프로그램 강제 종료
}
}
class Event1 extends Frame {
Button button = new Button("OK");
// 2) 이벤트 처리 객체 생성
ActionDefine ad = new ActionDefine();
public Event1() {
// Frame 설정
setTitle("Event1");
setSize(300, 200);
init(); // 화면 구성
start(); // 이벤트 설정
setVisible(true);
}
// 화면 구성
void init() {
setLayout(null);
button.setBackground(Color.YELLOW);
button.setBounds(100, 100, 80, 30);
add(button);
}
// 이벤트 설정
void start() {
// 3) 버튼에 이벤트 설정
button.addActionListener(ad);
}
}
public class Exam1 {
public static void main(String[] args) {
Event1 event1 = new Event1();
}
}
2. Listener를 Frame 클래스에서 상속받아 사용
import java.awt.Button;
import java.awt.Color;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
// 1) Listener 상속 받기
class Event2 extends Frame implements ActionListener {
// 컴포넌트 선언
Button button = new Button("OK");
public Event2() {
// Frame 설정
setTitle("Event");
setSize(300, 200);
init(); // 화면 구성
start(); // 이벤트 설정
setVisible(true);
}
void init() {
setLayout(null);
button.setBackground(Color.YELLOW);
button.setBounds(100, 100, 80, 30);
add(button);
}
void start() {
// 3) 컴포넌트 객체에 이벤트 설정 : 버튼 이벤트 설정
// addActionListener(actionPerformed함수가 있는 객체)
button.addActionListener(this);
}
// 2) 이벤트 처리 함수 구현
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
}
public class Exam2 {
public static void main(String[] args) {
Event2 event2 = new Event2();
}
}
3. 익명 클래스 사용 1
import java.awt.Button;
import java.awt.Color;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
class Event3 extends Frame {
// 컴포넌트 선언
Button button = new Button("OK");
public Event3() {
// Frame 설정
setTitle("Event");
setSize(300, 200);
init();
start();
setVisible(true);
}
// 화면 구성
void init() {
setLayout(null);
button.setBackground(Color.YELLOW);
button.setBounds(100, 100, 80, 30);
add(button);
}
// 이벤트 설정
void start() {
// 1) 익명 클래스로 Listener 상속 및 구현 및 생성
ActionListener al = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
};
// 2) 버튼 이벤트 설정
button.addActionListener(al);
}
}
public class Exam3 {
public static void main(String[] args) {
Event3 event3 = new Event3();
}
}
4. 익명 클래스 사용 2
import java.awt.Button;
import java.awt.Color;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
class Event4 extends Frame {
// 컴포넌트 선언
Button button = new Button("OK");
public Event4() {
// Frame 설정
setTitle("Event");
setSize(300, 200);
init();
start();
setVisible(true);
}
// 화면 구성
private void init() {
setLayout(null);
button.setBackground(Color.YELLOW);
button.setBounds(100, 100, 80, 30);
add(button);
}
// 이벤트 설정
private void start() {
// 익명클래스로 이벤트 객체 생성 및 버튼 이벤트 설정
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
// "x" 버튼 이벤트 설정
this.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
super.windowClosing(e);
System.exit(0);
}
});
}
}
public class Exam4 {
public static void main(String[] args) {
Event4 event4 = new Event4();
}
}
addWindowListener
- WindowListener : 리스너의 모든 인터페이스를 구현해야 함
- WindowAdapter : 리스너의 모든 인터페이스를 구현할 필요가 없음
// WindowListener ; 모든 method를 구현해야 함
this.addWindowListener(new WindowListener() {
@Override
public void windowOpened(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowIconified(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowDeiconified(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowDeactivated(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowClosing(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowClosed(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowActivated(WindowEvent e) {
// TODO Auto-generated method stub
}
});
// WindowAdapter ; 반드시 구현해야하는 method 없음
this.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
super.windowClosing(e);
System.exit(0);
}
});
Layout Manager
- FlowLayout Manager : 컴포넌트를 프레임 상에 원래의 크기대로 차례차례 배치하는 레이아웃

- GridLayout Manager : 프레임을 그리드로 나누어 컴포넌트를 차례대로 배치하는 레이아웃

- BorderLayout : 프레임을 5가지 방향(Center, North, South, West, East) 으로 나누어 컴포넌트를 특정 방향으로 배치하는 레이아웃

'Study > Java' 카테고리의 다른 글
| [Java/Eclipse] Java 44일차 (0) | 2022.11.16 |
|---|---|
| [Java/Eclipse] Java 43일차 (0) | 2022.11.15 |
| [Java/Eclipse] Java 41일차 (0) | 2022.11.11 |
| [Java/Eclipse] Java 39, 40일차 (0) | 2022.11.10 |
| [Java/Eclipse] Java 38일차 (0) | 2022.11.08 |