[java] 엄마도 이해하는 자바 기본 4일차

2013. 2. 18. 13:10Information Technology/Java


□ 복습 (9:00 ~  11:30)

 ○ package 

  - 다른 package의 클래스 사용할 때

  - import를 써서 사용


 [예제1]

 

CalcImpl.java

MyEvent.java

MyIO.java

prac2.java



 [예제2]

KeyBoard.java

MainFrame.java

Monitor.java

Mouse.java

MyComputer.java

Power.java

PowerAb.java



□ GUI (PM 1:00 ~

 ○ AWT

  - JDK 초기 UI API

  - 컴포넌트가 C와 같은 NATIVE CODE를 포함하고 있음


 SWING

   - 다양한 종류의 컴포넌트

   - 컴포터는가 100% JAVA로 작성되어 짐

   - 어떤 실행 환경에서든 동일한 UI


 ※ AWT → SWING, 

   - Button → JButton

   - Check JCheck

   - Frame JFrame


□ JFrame의 구성


□ Layout Managers 

 ○ FlowLayout

  BorderLayout

 GridLayout

 ○ GridBagLayout

 ○ CardLayout

 ○ BoxLayout


[예시]

setLayout(new FlowLayout());

 // Layout manger. FlowLayout() 이 아닌 다른 이름으로 바꿀 수 있다.

 

 // JFrame은 디폴트 Layout Manger가 BorderLayout 이다.

 // JPanel은 기본이 FlowLayout

 // Layout은 container에 지정한다.(container가 Layout manger를 지정한다)


 

□ FlowLayout 

 ○ 화면의 상단에서부터 중앙정렬되어 오른쪽 방향으로 배치됨

 ○ 화면 크기가 변하면 배치가 달라짐


□ BorderLayout (가장 많이 씀)

  화면이 동,서,남,북,중앙으로 나누어져 있음

  화면 크기가 변해도 배치가 달라지지 않음

 ※ 한 영역에 2개를 붙일 수 없다(but 컨테이너를 만든후 2개를 붙일수 있다)


□ GridLayout

 ○ 화면이 행렬방식으로 


□ Event Handling

 ○ 화면을 구성하고 있는 컴포넌트에 대해 발생하는 사건(이벤트)에 대한 처리작업


 ○ Event Handler - Event 감시/처리자

   - Interface 타입으로 존재 → 추상메소드

   - Handler 이름 → ~Listener

   - java.awt.event / javax.swing.event

 

Component 

Event (사건의 이름) 

Listener (감시자) 

JButton (마우스 클릭)

JTextField (입력&엔터)

ActionEvent 

ActionListener 

 JList

ListSelectionEvent 

ListSelectionListener 

Window 

WindowEvent 

WindowListener 


 

□ Event Handling 처리순서

 1. 이벤트 처리 클래스 정의

   - Event (사건의 이름)를 확인한 후 Listener(감시자) implements 하기 (감시자가 인터페이스 이기 때문에)


 2. Event발생 컴포넌트에 Listener 등록


 3. Listener의 추상 메소드 구현

  - Event 발생시 원하는 처리작업 기술


□ 소스자료

  Swing

SwingTest.java



 ○ Layout

BorderTestOne.java

BorderTestTwo.java



 ○ Event

ChatTest.java

ChatTest1.java

FlowTestOne.java

GridTestOne.java

TestButton.java

TestButton2.java

TwoListener.java