Java

Java 개발 공부 14일차 (21.09.03)

Pearl_mini 2021. 9. 8. 13:14
728x90

Integer [] arr, -> Arrays.sort(arr, Collections.reverseOrder) -> 내림차순 정렬

 Arrays.sort(arr) -> 오른차순 정렬,   근데 arr를 한번 옮겨서 정렬했다. 이유 확인??

정렬 알고리즘, 서치 알고리즘 : 버블정렬, 삽입정렬, 선택정렬, 퀵정렬

 


Java AWT

기본 API클래스 부분 들어가기 전에 눈으로 보이는 Java AWT를 학습하기로 했다.

최근에는 Java AWT를 거의 사용하지 않지만, 기본 동작하는 형태 등은 현재 사용되는 UI tool들과 유사하기 때문에  학습하고 넘어가면 좋을 것 같다.

 

AWT의 정의

- AWT (Abstract Window Toolkit) : 자바의 초기 화면을 구현하는 API

 

AWT의 구성 요소

- Component : Box, Checkbox, Label 등과 같은 화면에서 사용자에게 기능을 제공한다. 반드시 container를 통해 보여짐

- Container : 화면 전체의 틀을 제공하고, Component를 표시한다. Window 및 Panel 계열로 나눌 수 있다.

- LayoutManeger : Container에서 Component들의 크기와 위치를 지정한다. 각 Container는 기본 LayoutManager를 가지고 있다.

 

LayoutManager

- 컨테이너 안에 컴포넌트를 원하는 위치에 배치를 할 수 있게 해주는 요소.

- 종류: BorderLayout, FlowLayout, CardLayout, GridLayout ...

  • BorderLayout : Frame의 기본 배치 관리자. 화면을 5개 영역으로 구분, component들의 크기는 변경되지만 위치는 변하지 않는다.
    North
    West Center East
    South
  • FlowLayout : Panel의 기본 배치 관리자. 수평으로 Component를 나열, Window 화면 크기 변경 시 component 크기는 변하지 않지만, 위치는 변경될 수 있다.
  • GridLayout : Component를 행과 열로 나누어 배치하고 싶을 때 사용, 테이블 형태 배치 관리자. 생성 시 행과 열을 지정한다. component 추가 시 왼쪽에서 오른쪽, 위에서 아래로 추가된다. pack()은 Frame의 크기를 컴포넌트의 크기에 맞게 조정한다.

 

** Panel

 

AWT Event

AWT Event : 자바 화면에서 사용자가 발생시키는 행위나 시스템이 자체적으로 발생시키는 모든 행위

 - Event Source : Event를 발생시킨 컴포넌트

 - Event Handler: 이벤트 발생 시 작업을 수행하는 주체(클래스)

 - Event Listener : 이벤트 소스에서 이벤트 발생유무를 체크한다. interface로 제공되고 실제 이벤트 처리하는 추상 메서드를 가지고 있다.

 

 

Java Event 처리 과정


  1. 자바 프로그램 실행 중에 운영체제가 프로그램에 이벤트 발생 유무를 체크
  2. 이벤트가 발생하면 운영체제는 JVM에게 이벤트 발생을 알림
  3. JVM은 이벤트 발생을 분석한 후 적절한 이벤트 객체를 생성
  4. JVM은 이벤트 객체를 이벤트 리스너를 구현한 이벤트 핸들러에게 전달
  5. 이벤트 핸들러는 이벤트 객체를 받아 적절히 처리

 

AWT Event의 종류들

- Action Event, MouseEvent 등등 아주 많다.

- AWT Event 구현 방식

1) 화면 클래스와 이벤트 핸들러 클래스가 같은 경우

2) 화면 클래스와 이벤트 핸들러 클래스가 다른 경우

3) 내부 클래스를 이벤트 핸들러 클래스로 사용하는 경우

4) 이벤트 핸들러 클래스를 익명의 클래스로 사용하는 경우

 

Adapter 클래스

 - 2개 이상의 추상 메서드를 가진 리스너 인터페이스를 미리 구현한 클래스

 - adapter를 이용하면 모든 추상메서드를 구현할 필요가 없다. (상속받으니까 필요한 메서드를 재정의만하면 된다)

 


 

System.exit(0);  : 프로그램이 정상 종료된다.

728x90