[JAVA 기초] JAVA AWT

junghan·2023년 3월 14일
0

JAVA

목록 보기
6/12
post-thumbnail

Java AWT란?

Java AWT (Abstract Window Toolkit)는 Java에서 그래픽 사용자 인터페이스(GUI) 또는 Windows 기반 응용 프로그램을 개발하기 위한 API 입니다.

Java AWT 구성 요소는 플랫폼 종속적입니다. 즉 구성 요소는 운영 체제 보기에 따라 표시됩니다. AWT는 무겁습니다. 즉, 해당 구성 요소는 기본 운영 체제(OS)의 리소스를 사용합니다.

java.awt 패키지는 TextField , Label , TextArea , RadioButton, CheckBox , Choice , List 등과 같은 AWT API용 클래스를 제공합니다 .



AWT가 플랫폼 독립적인 이유

Java AWT는 네이티브 플랫폼을 호출하여 TextField, ChechBox, 버튼 등과 같은 API 구성 요소를 생성하기 위한 네이티브 플랫폼(운영 체제) 서브루틴을 호출합니다.

예를 들어 TextField, 레이블 및 버튼과 같은 구성 요소가 있는 AWT GUI는 Windows, MAC OS 및 Unix와 같은 다양한 플랫폼에 대해 서로 다른 모양과 느낌을 갖습니다. 그 이유는 플랫폼이 기본 구성 요소에 대해 서로 다른 보기를 가지고 있고 AWT가 해당 구성 요소를 생성하는 기본 서브루틴을 직접 호출하기 때문입니다.

간단히 말해서 AWT 응용 프로그램은 Windows OS에서는 Windows 응용 프로그램처럼 보이지만 MAC OS에서는 Mac 응용 프로그램처럼 보입니다.



JAVA AWT 계층

Component

버튼, 텍스트 필드, 스크롤 막대 등과 같은 모든 요소를 ​​구성 요소라고 합니다. Java AWT에는 위의 다이어그램과 같이 각 구성 요소에 대한 클래스가 있습니다. 모든 구성 요소를 화면의 특정 위치에 배치하려면 컨테이너에 추가해야 합니다.

Container

Container는 버튼 , 텍스트 필드, 레이블 등과 같은 다른 구성 요소를 포함할 수 있는 AWT의 구성 요소입니다. Container 클래스를 확장하는 클래스는 Frame, Dialog 및 Panel 과 같은 컨테이너로 알려져 있습니다 .

기본적으로 구성 요소가 특정 위치에 배치되는 화면입니다. 따라서 구성 요소의 레이아웃을 포함하고 제어합니다.

컨테이너의 유형:

  • Window

    창은 테두리와 메뉴 모음이 없는 컨테이너입니다. 창을 만들려면 프레임, 대화 상자 또는 다른 창을 사용해야 합니다. 이 컨테이너를 만들려면 Window 클래스의 인스턴스를 만들어야 합니다.

  • Panel

    패널은 제목 표시줄, 테두리 또는 메뉴 표시줄을 포함하지 않는 컨테이너입니다. 구성 요소를 보관하기 위한 일반 컨테이너입니다. 버튼, 텍스트 필드 등과 같은 다른 구성 요소를 가질 수 있습니다. Panel 클래스의 인스턴스는 구성 요소를 추가할 수 있는 컨테이너를 만듭니다.

  • Frame

    프레임은 제목 표시줄과 테두리를 포함하고 메뉴 표시줄을 가질 수 있는 컨테이너입니다. 버튼, 텍스트 필드, 스크롤바 등과 같은 다른 구성 요소를 가질 수 있습니다. 프레임은 AWT 애플리케이션을 개발하는 동안 가장 널리 사용되는 컨테이너입니다.

  • Dialog

    Frame처럼,titlebar와 닫기 버튼을 갖고 있지만, 메뉴는 가질수없으며 기본적으로 크기를 변경할수없습니다. 주로 프로그램 사용자에게 메시지를 보여주거나 응답을 받는데 사용합니다.(메시지창)

컴포넌트 클래스 유용한 메서드

public void add(Component c): 이 구성 요소에 구성 요소를 삽입합니다.
public void setSize(int width,int height): 구성 요소의 크기(너비 및 높이)를 설정합니다.
public void setLayout(LayoutManager m): 구성 요소의 레이아웃 관리자를 정의합니다.
public void setVisible(boolean status): 기본적으로 false로 구성 요소의 가시성을 변경합니다.



profile
42seoul, blockchain, web 3.0

0개의 댓글