Java Swing 튜토리얼: GUI 애플리케이션을 만드는 방법 Java
스윙이란 무엇입니까? Java?
스윙인 Java GUI 구성 요소를 포함하는 그래픽 사용자 인터페이스(GUI) 툴킷입니다. Swing은 정교한 GUI 구성 요소를 만드는 데 필요한 풍부한 위젯과 패키지 세트를 제공합니다. Java 응용 프로그램. 스윙은 다음의 일부입니다. Java Foundation 클래스(JFC)는 API입니다. Java GUI를 제공하는 GUI 프로그래밍.
The Java Swing 라이브러리는 다음 위에 구축됩니다. Java 추상 위젯 툴킷(AWT), 오래된 플랫폼 종속 GUI 툴킷입니다. 당신은 사용할 수 있습니다 Java 버튼, 텍스트 상자 등 간단한 GUI 프로그래밍 구성 요소를 라이브러리에서 가져오므로 구성 요소를 처음부터 만들 필요가 없습니다.
이번에 Java 스윙 튜토리얼을 통해 배울 수 있습니다 Java GUI 기본 사항은 다음과 같습니다.
Java 스윙 클래스 계층 다이어그램

모든 구성 요소 Java Swing은 컨테이너 클래스에 추가할 수 있는 JComponent입니다.
컨테이너 클래스란 무엇입니까?
컨테이너 클래스는 다른 구성요소를 가질 수 있는 클래스입니다. 그래서 Java Swing GUI에서는 최소한 하나의 컨테이너 객체가 필요합니다. 3가지 유형이 있습니다. Java 스윙 컨테이너.
- 패널: 순수한 용기이며 그 자체로는 창이 아닙니다. 패널의 유일한 목적은 구성 요소를 창에 구성하는 것입니다.
- Frame: 제목과 아이콘이 포함되어 완벽하게 작동하는 창입니다.
- 대화: 메시지를 표시해야 할 때 튀어나오는 팝업 창과 같다고 생각할 수 있습니다. 프레임처럼 완벽하게 작동하는 창은 아닙니다.
GUI 란 무엇입니까? Java?
GUI(그래픽 사용자 인터페이스) Java 사용하기 쉬운 시각적 경험 빌더입니다. Java 응용 프로그램. 주로 버튼, 레이블, 창 등과 같은 그래픽 구성 요소로 구성되어 사용자가 응용 프로그램과 상호 작용할 수 있습니다. GUI는 쉬운 인터페이스를 구축하는 데 중요한 역할을 합니다. Java 분야의 다양한 어플리케이션에서 사용됩니다.
GUI를 만드는 방법 Java 예와 함께
이제 이것에서 Java GUI Tutorial, GUI를 만드는 방법을 이해해 봅시다. Java 스윙과 함께 Java 예.
단계 1) 편집기에 코드 복사
첫 번째 단계에서는 다음 코드를 편집기에 복사합니다.
import javax.swing.*; class gui{ public static void main(String args[]){ JFrame frame = new JFrame("My First GUI"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(300,300); JButton button = new JButton("Press"); frame.getContentPane().add(button); // Adds Button to content pane of frame frame.setVisible(true); } }
단계 2) 코드 실행
다음 단계, 코드 저장, 컴파일 및 실행
단계 3) 다음 코드를 편집기에 복사하세요.
이제 프레임에 버튼을 추가해 보겠습니다. 다음 코드를 주어진 편집기에 복사합니다. Java UI 예
import javax.swing.*; class gui{ public static void main(String args[]){ JFrame frame = new JFrame("My First GUI"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(300,300); JButton button1 = new JButton("Press"); frame.getContentPane().add(button1); frame.setVisible(true); } }
단계 4) 코드 실행
다음으로 코드를 실행합니다. 큰 버튼이 생깁니다.
단계 5) 두 개의 버튼 추가
버튼 두 개를 추가하는 건 어때요? 다음 코드를 편집기에 복사하세요.
import javax.swing.*; class gui{ public static void main(String args[]){ JFrame frame = new JFrame("My First GUI"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(300,300); JButton button1 = new JButton("Button 1"); JButton button2 = new JButton("Button 2"); frame.getContentPane().add(button1); frame.getContentPane().add(button2); frame.setVisible(true); } }
단계 6) 프로그램 저장 및 실행
다음으로 프로그램을 저장하고 컴파일하고 실행합니다.
단계 7) 출력 확인
예상치 못한 출력 =? 버튼이 겹쳐지고 있습니다.
Java 레이아웃 관리자
레이아웃 관리자는 GUI를 레이아웃(또는 정렬)하는 데 사용됩니다. Java 컨테이너 내부의 구성 요소. 많은 레이아웃 관리자가 있지만 가장 자주 사용되는 것은 다음과 같습니다.
Java 테두리 레이아웃
A BorderLayout
상단, 하단, 왼쪽, 오른쪽, 중앙 등 최대 XNUMX개 영역에 구성요소를 배치합니다. 모든 Java JFrame의 기본 레이아웃 관리자입니다.
Java 플로우 레이아웃
FlowLayout
모든 항목의 기본 레이아웃 관리자입니다. JPanel
. 단순히 구성요소를 한 행에 하나씩 배치하는 것뿐입니다.
Java GridBag레이아웃
모든 레이아웃 중에서 가장 정교합니다. 셀 그리드 내에 구성 요소를 배치하여 구성 요소를 정렬하여 구성 요소가 두 개 이상의 셀에 걸쳐 있도록 합니다.
단계 8) 채팅 프레임 만들기
아래와 같은 채팅 프레임을 만들어 보면 어떨까요?
아래 프로그램을 보기 전에 직접 코딩해 보세요.
//Usually you will require both swing and awt packages // even if you are working with just swings. import javax.swing.*; import java.awt.*; class gui { public static void main(String args[]) { //Creating the Frame JFrame frame = new JFrame("Chat Frame"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(400, 400); //Creating the MenuBar and adding components JMenuBar mb = new JMenuBar(); JMenu m1 = new JMenu("FILE"); JMenu m2 = new JMenu("Help"); mb.add(m1); mb.add(m2); JMenuItem m11 = new JMenuItem("Open"); JMenuItem m22 = new JMenuItem("Save as"); m1.add(m11); m1.add(m22); //Creating the panel at bottom and adding components JPanel panel = new JPanel(); // the panel is not visible in output JLabel label = new JLabel("Enter Text"); JTextField tf = new JTextField(10); // accepts upto 10 characters JButton send = new JButton("Send"); JButton reset = new JButton("Reset"); panel.add(label); // Components Added using Flow Layout panel.add(tf); panel.add(send); panel.add(reset); // Text Area at the Center JTextArea ta = new JTextArea(); //Adding Components to the frame. frame.getContentPane().add(BorderLayout.SOUTH, panel); frame.getContentPane().add(BorderLayout.NORTH, mb); frame.getContentPane().add(BorderLayout.CENTER, ta); frame.setVisible(true); } }