<aside> 💡 GUI란? Graphic User Interface로 사용자가 사용자가 컴퓨터와 정보를 쉽게 교환하고 상호 작용을 하기 위해 아이콘 등과 같은 그래픽을 이용한 사용자 인터페이스 (출처 : **TTA정보통신용어사전)**
</aside>
GUI는 그래픽을 이용해 인터페이스를 구현하는 방법으로 특정 언어에만 국한된 것이 아니다. (Phython, C# 등)
JAVA에서의 GUI는 AWT / SWING이라는 기본 내장 GUI 라이브러리(패키지)를 이용하여 작성된다.

위의 계층도를 보면 알겠지만, 늘 그렇듯 Object 클래스가 가장 조상 클래스로 위치한다. 그리고 그 자손 클래스로 AWT 클래스가 존재하고, AWT 클래스의 일부를 상속받아 Swing 클래스가 존재한다.
다만 GUI를 작성할 때는 상속 관계를 크게 생각하지 않고, 하나의 Component씩 독립적으로 붙여나간다는 식으로 생각하는 것을 추천한다. GUI를 작성할 때는.. 그냥 만들기도 쉬운 편이 아니기 때문에..
GUI는 대게 아래와 같은 그림으로 여러 개의 판(Pane)이 덧붙여져서 만든다.

출처 : JAVA 공식 API 문서 (Link : LINK )
이렇게 여러 개의 판마다 레이아웃(정렬 방식)을 지정하고, 위에 Component(버튼, 입력하는 칸) 등을 붙여나가서 GUI를 완성하면 된다. 하나씩 천천히 알아보자.
Frame은 위의 AWT, Swing 계층도를 보면 알겠지만 Window의 자손 클래스 Frame, Dialog 중 하나이다.
Frame은 최상위 레벨 컨테이너로, 사용자가 볼 수 있는 윈도우를 만들어준다. 즉, 윈도우의 크기, 위치, 타이틀, 메뉴바 등을 설정할 수 있다. Frame 중 JFrame 클래스를 이용하여 코드를 작성할 것이다. JFrame은 다음과 같이 Content Pane, Menu Bar로 구성되어있다.

출처 : 자바 공식 API 문서 ( Link : LINK2)
두 부분이 어디인지는 아래의 그림을 참고하자.

출처 : 자바 공식 API 문서 ( Link : LINK2)
코드 봐주세요 !