introduction jfc
이 튜토리얼은 GUI (Graphical User Interface) 프로그래밍 및 Java Foundation Classes 또는 JFC의 기본 사항에 대해 설명합니다.
이전 자습서에서는 Java와 유사한 데이터 유형, 변수, 의사 결정 및 루프 구성 등의 기본부터 Java의 배열, 컬렉션 및 메서드에 이르기까지 다양한 주제를 다루었습니다.
멀티 스레딩과 예외의 개념에 대해서도 논의했습니다. 그 후 Java OOPS 지원을 배웠습니다. 이러한 모든 개념을 사용하여 재사용 가능하고 견고 할뿐만 아니라 독립적 인 Java로 고급 애플리케이션을 개발할 수 있습니다.
=> Java 교육 자습서의 A-Z를 보려면 여기를 확인하십시오.
이 튜토리얼에서는 Java에서 애플리케이션의 그래픽 개발에 대한 논의를 시작합니다. 다른 모든 개념과 마찬가지로 Java는 그래픽 사용자 인터페이스 (GUI)를 개발할 수 있도록 재사용 가능한 수많은 그래픽 클래스와 API를 제공합니다.
학습 내용 :
Java에서 그래픽 사용자 인터페이스 란?
그래픽 사용자 인터페이스 또는 간단히 'GUI'라고하는 것은 소프트웨어 세계에서 사용되는 일반적인 용어입니다. GUI는 컨트롤을 사용하기 쉬운 사용자를위한 시각적 디스플레이가있는 애플리케이션을 나타냅니다. GUI는 일반적으로 창, 프레임, 버튼, 레이블 등과 같은 그래픽 구성 요소로 구성됩니다.
이러한 구성 요소를 사용하여 시스템 또는 외부 세계와 상호 작용할 수 있습니다. Java는 GUI 애플리케이션을 개발할 수있는 많은 API와 재사용 가능한 클래스를 제공합니다. Java에서 제공하는 가장 오래된 키트 중 하나는 'Abstract Windowing ToolKit'또는 AWT입니다. 모든 최신 API 또는 Swing과 같은 구성 요소 JavaFX 등은이 AWT를 기반으로합니다.
지금까지 작성한 콘솔 프로그램도 똑같이 중요하지만 최신 데스크톱 응용 프로그램이 모두 그래픽으로 활성화되어 있다는 것을 알아야합니다. 즉, 최종 사용자가 마우스 클릭으로 애플리케이션을 더 쉽게 사용할 수있는 바로 사용할 수있는 GUI가 있습니다.
GUI를 작성하는 것은 일부 모양을 그리거나 이미지를 포함하는 것만 큼 쉽지 않습니다. GUI에는 일부 작업을 트리거하는 버튼을 클릭하는 것과 같이 구성 요소 또는 구성 요소의 일부를 호출 할 때 일부 작업을 차례로 실행하는 일부 이벤트를 트리거하는 일련의 활동이 포함되어 있습니다.
따라서 GUI 애플리케이션은 이러한 구성 요소에서 트리거 될 수있는 그래픽 구성 요소 및 이벤트와 이벤트 트리거의 결과로 실행되는 작업으로 구성된 프레임 워크입니다.
프레임 워크는 일반적으로 미리 컴파일 된 재사용 가능한 클래스와 구성 요소를 제공합니다.이 클래스와 구성 요소는 드로잉 영역에서 끌어서 놓은 다음 이벤트와 작업을 이러한 구성 요소와 연결할 수 있습니다.
Java는 다음과 같은 기본 프레임 워크를 제공합니다.
Java는 GUI 프로그래밍을위한 다음 프레임 워크를 제공합니다.
- Abstract Windowing Toolkit : 이것은 Java에서 가장 오래된 프레임 워크이며 JDK 1.0에서 처음 도입되었습니다. 대부분의 AWT 구성 요소는 이제 구식이며 Java 스윙 구성 요소로 대체되었습니다.
- 스윙 API : 이것은 AWT 프레임 워크 위에 개발 된 그래픽 라이브러리 세트이며 JFC (Java Foundation Classes)의 일부입니다. Swing에는 구성 요소에 플러그 앤 플레이를 사용할 수있는 모듈 식 아키텍처가 있습니다.
- JavaFX : 최신 프레임 워크는 Java 8부터 사용할 수 있습니다.
Android에서 사용되는 Eclipse의 SWT (Standard Widget Toolkit) 또는 GWT (Google Web Toolkit)와 같은 다양한 타사 그래픽 프레임 워크가 있습니다.
JFC (Java Foundation Classes)
Java는 그래픽 사용자 인터페이스 또는 GUI 개발을위한 기능 세트를 제공합니다. 이 기능 세트를 Java Foundation Classes 또는 JFC라고합니다.
JFC를 사용하여 응용 프로그램에 풍부한 그래픽 기능을 추가하고 더욱 상호 작용할 수 있습니다. JFC에는 애플리케이션에 쉽게 연결하고 요구 사항에 따라 프로그래밍 할 수있는 그래픽 구성 요소 세트가 포함되어 있습니다. 그러나 이러한 구성 요소를 프로그래밍하는 데 일반적으로 몇 줄의 코드 만 필요합니다.
JFC에는 java.awt 및 javax.swing 패키지의 클래스가 포함되어 있습니다. 이 외에도 Java 3D, Java 2D, Java Accessibility 등과 관련된 클래스도 포함되어 있습니다. JFC는 Java의 객체 및 구성 요소 모델과 동기화되어 사용하기 쉽습니다.
다음 다이어그램은 JFC의 다양한 구성 요소를 요약합니다.
위와 같이 JFC에는 AWT와 Swing 클래스가 포함되어 있습니다. Java AWT 및 Java Swing 튜토리얼을 진행하면서 각각에 대해 논의 할 것입니다. JFC는 또한 애플리케이션 내에서 사용할 수있는 다양한 방법을 제공합니다.
일반적으로 사용되는 방법은 다음과 같습니다.
방법 | 기술 |
---|---|
public void add (컴포넌트 c) | 메서드를 호출하는 부모 구성 요소에 구성 요소를 추가합니다. |
public void setSize (int width, int height) | 지정된 너비와 높이로 구성 요소의 크기를 설정합니다. |
public void setLayout (LayoutManager m) | 이 컴포넌트에 대해 지정된 레이아웃 관리자를 설정합니다. |
public void setVisible (boolean b) | 부울 값에 따라 구성 요소 가시성을 설정합니다. 기본적으로 가시성은 false입니다. |
이제 일반적인 수준에서 GUI 구성 요소에 대해 설명하겠습니다. 그런 다음 후속 자습서에서 AWT 및 Swing 패키지와 해당 구성 요소에 대해 구체적으로 설명합니다.
창 구성 요소
GUI 애플리케이션의 부모 컨테이너는 하나 이상의 프레임을 포함 할 수있는 창이라는 것을 알고 있습니다.
GUI는 일반적으로 사용자 인터페이스 요소 또는 애플리케이션에서 GUI의 일부로 표시되는 요소를 포함합니다.
이러한 창 구성 요소는 다음과 같습니다.
- 정보 요소 : 레이블, 아이콘, 배너 또는 메시지 대화 상자와 같은 정보를 제공하는 요소 또는 구성 요소입니다.
- 입력 컨트롤 : 텍스트 필드, 버튼, 드롭 다운 목록, 체크 박스, 라디오 버튼 등은 사용자로부터 데이터를 읽을 수있는 입력 컨트롤입니다.
- 탐색 구성 요소 : 메뉴, 사이드 바, 이동 경로 등과 같은 구성 요소는 응용 프로그램을 탐색하는 데 도움이됩니다.
이제 GUI의 몇 가지 중요한 구성 요소를 설명하겠습니다.
자바 프레임
프레임은 화면에 표시되는 그래픽 창입니다. 프레임은 구성 요소로 볼 수 있지만 화면에서 볼 수있는 물리적 창을 형성하므로 다른 구성 요소와 다르게 취급됩니다. 프레임에는 버튼, 텍스트 필드 등의 다른 그래픽 구성 요소와 패널도있을 수 있습니다.
프레임에는 다른 구성 요소에서 지원하지 않는 메서드도 있습니다. 'java.awt.Frame'은 AWT의 클래스를 나타내고 JFrame은 프레임을 나타내는 Java Swing 패키지에 포함 된 클래스입니다.
따라서 모든 GUI 응용 프로그램은 기본 창을 형성하는 JFrame 객체를 구성하여 시작됩니다. JFrame 객체가 생성되면 setVisible (‘true’)을 호출하여 visible 속성을 true로 설정할 수 있습니다. 그런 다음이 프레임에 다른 구성 요소를 끌어서 놓을 수 있습니다.
기본 게이트웨이를 사용할 수 없습니다. Windows 7
프레임을 포함한 모든 GUI 구성 요소는 위에 표시된 공통 상속 계층의 일부이므로 몇 가지 공통 속성을 갖습니다. 따라서 Java Swing 패키지에 강력한 코드 공유 사례가 있다고 말할 수 있습니다.
다음 그림은 GUI 편집기의 일반적인 프레임 창을 보여줍니다.
위의 그림에서 볼 수 있듯이 디자인 편집기의 가장 바깥 쪽 창 (작은 빨간색 화살표로 표시됨)이 프레임입니다. 이 프레임 안에는 다양한 다른 구성 요소 또는 프레임의 하위 구성 요소가 있습니다.
이는 구성 요소의 트리 구조를 보여주는 왼쪽 패널에서 분명합니다. 더 큰 빨간색 화살표로 표시된 것처럼 JFrame은 루트 구성 요소이고 다른 모든 구성 요소는 하위 구성 요소입니다.
자바의 JPanel
JPanel 컨테이너는 Java의 Swing 패키지의 일부입니다. JPanel은 구성 요소 그룹을 저장합니다. JPanel은 설정된 레이아웃을 사용하여 구성 요소를 구성했습니다. 다양한 레이아웃은 JPanel이 구성 요소를 더 잘 구성하는 데 도움이 될 수 있습니다.
JPanel은 프레임 또는 다른 패널 내부의 구성 요소 레이아웃을위한 기본 구성 요소로 간주됩니다. GUI 응용 프로그램에는 일반적으로 프레임이 기본 창으로 있고 그 안에 다양한 구성 요소를 보관하고 구성하기위한 하나 이상의 패널이 있습니다.
다음 이미지는 프레임 내부의 간단한 패널 예를 보여줍니다.
위에 표시된대로 패널 컨테이너는 프레임 창 컨테이너에 포함됩니다. 하나 이상의 패널 또는 패널 내부에 패널을 가질 수 있습니다. 그런 다음 패널 내부의 구성 요소 또는 요소를 구성 할 레이아웃 관리자를 패널에 적용 할 수 있습니다. JPanel의 기본 레이아웃 관리자는 'FlowLayout'입니다.
Java의 GUI 레이아웃
Java 컨테이너는 화면에서 구성 요소의 자동 레이아웃을 사용합니다. 그러나 구성 요소의 크기와 위치는 '레이아웃 관리자'가 관리합니다. 레이아웃 관리자는 디자인 타임에 컨테이너에 대해 설정됩니다. 동적으로 변경할 수도 있습니다.
Java GUI에서 사용되는 일반적인 레이아웃은 다음과 같습니다.
# 1) BorderLayout
테두리 레이아웃은 아래와 같이 구성 요소를 5 개의 영역으로 나눕니다.
이 중에서 '북쪽', '남쪽', '동쪽'및 '서쪽'의 4 개 영역은 크기를 조정할 수 없습니다. '중앙'영역의 크기를 조정할 수 있습니다. 각 영역에는 하나의 구성 요소로만 제한되며 패널을 사용하여 여러 구성 요소를 저장할 수 있습니다.
# 2) FlowLayout : 이 레이아웃은 여러 구성 요소를 유지하는 데 사용됩니다. 여러 구성 요소가 수평으로 배열되며 컨테이너 너비가 소진되면 포장됩니다. 또한 구성 요소는 왼쪽에서 오른쪽 순서로 표시됩니다.
# 3) BoxLayout : 상자 레이아웃을 사용하면 구성 요소가 수직 또는 수평으로 배열됩니다. 이러한 상자 레이아웃 배열은 컨테이너 크기와 무관합니다. 컨테이너의 구성 요소는 컨테이너를 채우고 동일한 크기를 갖도록 설정됩니다.
이것들은 우리가 GUI 개발에서 가지고있는 중요하고 일반적인 구성 요소 중 일부였습니다. AWT 및 Swing에 대한 후속 자습서에서는 이러한 패키지에서 제공하는 다른 구성 요소에 대해 자세히 설명합니다.
자주 묻는 질문
Q # 1) GUI 프로그래밍이란 무엇입니까?
대답: 포인팅 장치를 사용하여 컴퓨터와 상호 작용하는 그래픽 구성 요소를 사용하여 개발 된 프로그램은 이벤트 기반입니다. 즉, 특정 이벤트가 트리거 될 때 일부 작업을 수행하며 GUI 프로그래밍이라고합니다.
GUI 프로그래밍은 그래픽 구성 요소를 직접 연결하여 사용할 수있는 GUI 프레임 워크를 사용합니다.
Q # 2) Java와 함께 사용할 GUI는 무엇입니까?
답변 : Java는 아래와 같이 GUI 응용 프로그램을 개발하는 데 사용할 수있는 몇 가지 최고의 프레임 워크를 지원합니다.
- JavaFX.
- 스윙 GUI 자바.
- AWT : Abstract Windowing Toolkit.
- SWT- 표준 위젯 툴킷.
- Apache Pivot.
- SwingX.
- JGoodies.
- QtJambi.
Q # 3) GUI의 장점은 무엇입니까?
대답: GUI 프로그램은 응용 프로그램을 상호 작용하고 직관적이며 사용하고 배우기 쉽게 만듭니다. 사용자에게 그래픽 비주얼을 제공하기 때문에 동작이 더 많은 효과를 내므로 애플리케이션에 대한 즉각적인 시각적 피드백을받습니다.
Q # 4) JavaFX API 란 무엇입니까?
대답: JavaFX는 네이티브 Java 코드로 작성된 최신 Java 라이브러리이며 클래스와 인터페이스를 포함합니다. JavaFX는 Java 8 이후의 Java 버전에서 GUI 응용 프로그램을 디자인하는 데 사용할 수 있습니다.
Q # 5) Java는 GUI에 적합합니까?
대답: Java에는 최상의 지원과 함께 GUI 응용 프로그램을 개발할 수있는 더 많은 도구가 있지만 고급 GUI 응용 프로그램을 개발하기위한 거의 모든 기능을 갖춘 C ++의 MFC 라이브러리만큼 빠르고 효율적이지는 않습니다.
결론
이 튜토리얼에서는 Java로 GUI 프로그래밍을 살펴 보았습니다. Java에서 GUI 프로그래밍의 중요한 개념 중 일부를 소개하고 Java에서 지원하는 GUI 프레임 워크에 대한 개요도 살펴 보았습니다. JFC 라이브러리의 개요에 대해 논의했습니다.