본문 바로가기

언어공부/Java

자바 GUI(그래픽 사용자 인터페이스), awt, 프레임 객체 생성 및 창닫기

자바  GUI(그래픽 사용자 인터페이스), awt에 대해서 알아보자.

GUI(그래픽 사용자 인터페이스)

지금까지의 프로그램들은 모두 콘솔 기반이었다.  콘솔기반이란 MS-Dos창과 같이 텍스트만을 사용해서 사용자와 대화하는 것이다. GUI는 버튼이나 스크롤바와 같은 그래픽 사용자인터페이스를 뜻하며, GUI를 이용하면 사용자와 상호작용하는 프로그램을 쉽게 작성할 수 있다. GUI는 컴포넌트들로 만들어진다. 여기서 컴포넌트(component)란 레이블, 버튼이나 텍스트 필드와 같은 GUI를 작성하는 기본적인 빌등 블록을 의미하는 것으로 윈도우 시스템에서는 컨트롤(control)이라고도 부른다.

 


AWT(Abstract Windows Toolkit)

AWT는 운영체제가 제공하는 자원을 이용해서 컴포넌트를 생성한다. 버튼의 경우, AWT가 윈도우 시스템에서 실행되고 있다면 윈도우 시스템이 제공하는 버튼을 이용하여 AWT버튼을 만든다는 의미이다. AWT의 장점은 여러 플랫폼에서 쉽게 컴포넌트를 제공할 수 있다는 점이다. 하지만 컴포넌트가 플랫폼에 종속적이기 때문에 실행되는 플랫폼에 따라서 컴포넌트의 모습이 달라지게 되어 일관된 화면을 제공하는것이 어렵다.

 

1. java.awt AWT GUI . 의 로 컴포넌트를 제공한다.

2. AWT를 사용하기 위해서는 java.awt import 패키지를 해야 한다.

3. Panel 은 여러 개의 컴포넌트를 그룹별로 모을 때 주로 사용하는 일종의 컨테이너이다.

4. TextField는 한줄 짜리 텍스트를 입력받을 수 있는 입력박스를 만들어 준다.

5. Label은 컴포넌트가 여러개 있을 때 각 컴포넌트가 어떤 역할을 하는지 설명을 덧 붙 이기 위해서 사용한다.

6. TextArea는 여러 줄의 텍스트를 입력받기 위한 입력박스를 만들어 준다.

7. Checkbox는 하나 또는 복수개의 선택을 할수 있는 체크박스를 만들어 준다.

8. Checkbox에 체크 박스 그룹 객체를 적용하면 단 하나만 선택 가능한 라디오 버튼을 만들어 준다.

9. Choice는 드롭다운 리스트 즉 콤보박스를 작성할 때 사용한다.

10. List는 여러 개의 목록을 열거해서 화면에 보여주는 리스트 박스를 만들어 준다.

11. Canvas . 는 흰 도화지 같은 컴포넌트로 그림을 그리는 경우에 많이 사용한다.

12. 메뉴는 사용자가 프로그램의 기능을 선택할 수 있도록 여러 개의 아이템 항목을 단 계적으로 나타낸다. 메뉴를 구성하는 요소로 메뉴 바, 메뉴, 메뉴 아이템이 있다.

 

Component 클래스에 속하는 중요 메소드

public void add(PopupMenu pop) : 컴포넌트에 팝업 메뉴를 추가한다.

public setBackground(Color color) : 컴포넌트의 바탕색을 지정한다.

public setFont(Font f)  : 컴포넌트의 폰트를 설정한다.

public setLocation(int x, int y) : 컴포넌트의 위치를 설정한다.

public setSize(int w, int h) : 컴포넌트 크기를 설정한다.

public setBounds(int x, int y, int w, int h) : 컴포넌트의 위치와 크기를 설정한다.

public setSize(boolean b) : 컴포넌트를 화면에 보이도록 설정한다.

 

Container 클래스에 속하는 중요 메소드

public String getTitle() : 타이틀바의 문자열을 가져온다.

public isResizable() : 창의 크기 변경 여부를 알아낸다.

public void setMenuBar(MenuBar mb) : 프레임에 메뉴를 등록한다.

public void setResizable(boolean b) : 창의 크기 변경 여부를 지정한다.

public void setTitle(String title) : 타이틀바의 문자열을 지정한다.

 

ex) 프레임 객체 생성 및 프레임 창 닫기

 

창닫기 버튼이 눌렸을 때 창이 닫히도록 코딩을 해야한다. 해당 부분은 11번째 줄부터 17번째 줄까지로, addWindowListener(new WindowAdapter(){ });로 프레임에 이벤트를 처리하기 위한 리스너 객체를 생성하고 등록한다. WindowAdapter(){} 안에는 [닫기]버튼이 눌렸을 때 호출데는 메소드인 windowClosing(windowEvent e)를 오버라이딩 해서 프레임 창이 닫히고(dispose()), 프로세스를 강제종료하도록 (System.exit(0)) 만든다.

 

실행하면 나오는 화면.

 

WindowAdapter(){}를 쓰지 않으면 addWindowListener()에 대한 메소드를 오버라이딩을 다해야 하기 때문에 WindowAdapter(){}를 써주는게 좋다.

 

ex)

 

WindowListener인터페이스에 있는 추상메소드를 다 오버라이딩 해야한다.