학교/2-2학기(Java)
[12주차] 11/18(월) 강의내용
C0MPAS
2024. 11. 18. 21:19
9.8 배치관리자 없는 컨테이너
- 컨테이너의 배치관리자 제거
- 컴포넌트의 절대 위치와 절대 크기 설정
9.9 여러 컴포넌트를 가진 복잡한 GUI 만들기
- 예제 9-7
10.1 이벤트 기반 프로그래밍
- 자바의 이벤트 기반 GUI 응용프로그램 구조
-> 이벤트 소스
-> 이벤트 객체
-> 이벤트 리스너
-> 이벤트 분배 스레드
10.2 이벤트 객체
- 이벤트 객체 정보
- 이벤트 객체와 이벤트 소스
10.3 이벤트 리스너
- 리스너 인터페이스
- 이벤트 리스너 작성 과정
1) 이벤트와 이벤트 리스너 선택
2) 이벤트 리스너 클래스 작성
3) 이벤트 리스너 등록
- 이벤트 리스너 작성 방법
1) 독립 클래스로 이벤트 리스너 작성
2) 내부 클래스로 이벤트 리스너 작성
3) 익명 클래스로 이벤트 리스너 작성
// 예제 10-1: 독립 클래스로 Action 이벤트의 리스너 작성
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class IndepclassListener extends JFrame{
public IndepclassListener(){
setTitle("Action 이벤트 리스너 예제");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container c = getContentPane();
c.setLayout(new FlowLayout());
JButton btn = new JButton("Action");
btn.addActionListener(new MyActionListener());
c.add(btn);
setSize(350, 150);
setVisible(true);
}
public static void main(String[] args) {
new IndepclassListener();
}
}
class MyActionListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
JButton b = (JButton)e.getSource();
if(b.getText().equals("Action")){
b.setText("액션");
}
else{
b.setText("Action");
}
}
}
- 마우스로 문자열 이동시키기
// 예제 10-4: 마우스로 문자열 이동시키기 - 마우스 이벤트 연습
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MouseListenerEx extends JFrame{
private JLabel la = new JLabel("Hello");
public MouseListenerEx() {
setTitle("Mouse 이벤트 예제");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container c = getContentPane();
c.addMouseListener(new MyMouseListener());
c.setLayout(null);
la.setSize(50, 20);
la.setLocation(30, 20);
c.add(la);
setSize(250, 250);
setVisible(true);
}
class MyMouseListener implements MouseListener{
public void mousePressed(MouseEvent e) {
int x = e.getX();
int y = e.getY();
la.setLocation(x,y);
}
public void mouseReleased(MouseEvent e) {}
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
}
public static void main(String[] args) {
new MouseListenerEx();
}
}
10.4 어댑터 클래스
- 예제 10-5
출처: 명품 JAVA Programming(개정 5판), 생능출판사