그네 JFC(Java Foundation Classes) 라이브러리이자 AWT(Abstract Window Toolkit)의 확장입니다. Java Swing은 AWT에 비해 훨씬 향상된 기능, 새로운 구성 요소, 확장된 구성 요소 기능, 드래그 앤 드롭 지원을 통한 뛰어난 이벤트 처리 기능을 제공합니다.
자바 스윙 소개
Swing은 AWT보다 약 4배 많은 사용자 인터페이스(UI) 구성요소를 갖고 있으며 표준 Java 배포판의 일부입니다. 오늘날의 애플리케이션 GUI 요구 사항에 따라 AWT는 제한된 구현으로 현대 상용 애플리케이션에 필요한 복잡한 GUI를 개발하는 데 필요한 구성 요소를 제공할 수 없습니다. AWT 구성 요소 세트에는 버그가 상당히 많으며 동등한 Swing 리소스와 비교할 때 많은 시스템 리소스를 차지합니다. Netscape는 Java와 함께 사용할 수 있는 IFC(Internet Foundation Classes) 라이브러리를 도입했습니다. 해당 클래스는 상용 응용 프로그램용 GUI를 만드는 프로그래머들에게 매우 인기가 있었습니다.
- 스윙은 API 세트(API- 클래스 및 인터페이스 세트)입니다.
- 그래픽 사용자 인터페이스를 디자인하기 위해 Swing이 제공됩니다.
- Swing은 AWT(Abstract Window Toolkit)의 확장 라이브러리입니다. 오후 5:00 – 5:30
- GUI의 모양과 기능을 향상시켜온 새롭고 향상된 구성 요소가 포함되어 있습니다.
- Swing을 사용하여 독립형 Swing GUI 앱을 서블릿 및 애플릿으로 구축(개발)할 수 있습니다.
- 모델/뷰 디자인 아키텍처를 사용합니다.
- Swing은 AWT보다 이식성이 뛰어나고 유연하며, Swing은 AWT 위에 구축됩니다.
- Swing은 완전히 Java로 작성되었습니다.
- Java Swing 구성 요소는 플랫폼 독립적이며 Swing 구성 요소는 가볍습니다.
- Swing은 플러그형 모양과 느낌을 지원하며 Swing은 더욱 강력한 구성 요소를 제공합니다.
- 테이블, 목록, 스크롤 창, 색상 선택기, 탭 창 등과 같은
- 추가 스윙은 MVC를 따릅니다.
Java Swing과 Java AWT의 차이점
아래에 언급된 것처럼 Java Swing이 Java AWT와 다른 점은 다음과 같습니다.
| 자바 AWT | 자바 스윙 리눅스 $home |
|---|---|
| Java AWT는 Java로 GUI 애플리케이션을 개발하기 위한 API입니다. | Swing은 Java Foundation Classes의 일부이며 다양한 애플리케이션을 만드는 데 사용됩니다. |
| AWT의 구성 요소는 무겁습니다. | Java Swing의 구성 요소는 가볍습니다. |
| 구성 요소는 플랫폼에 따라 다릅니다. | 구성 요소는 플랫폼 독립적입니다. |
| 실행 시간은 Swing보다 길다. | 실행 시간은 AWT보다 짧습니다. |
| AWT 구성 요소에는 java.awt 패키지가 필요합니다. | Swing 구성요소에는 javax.swing 패키지가 필요합니다. |
해당 주제에 대해 더 자세히 알아보려면 다음을 참조하세요. 자바 스윙과 자바 AWT .
JFC란 무엇인가?
JFC는 Java Foundation Classes의 약자입니다. JFC는 데스크탑 애플리케이션을 단순화하는 GUI 구성요소 세트입니다. 많은 프로그래머들은 JFC와 Swing이 동일하다고 생각하지만 그렇지 않습니다. JFC에는 Swing [UI 구성 요소 패키지] 및 기타 여러 항목이 포함되어 있습니다.
- 잘라내기 및 붙여넣기: 클립보드 지원.
- 접근성 기능: 장애가 있는 사용자를 위한 GUI 개발을 목표로 합니다.
- 데스크탑 색상 기능은 Java 1.1에서 처음 도입되었습니다.
- Java 2D: 색상, 이미지 및 텍스트 지원이 향상되었습니다.
스윙 클래스의 특징
- 플러그형 모양과 느낌.
- MVC 아키텍처를 사용합니다.
- 경량 부품
- 플랫폼 독립적
- JTable, JTabbedPane, JScollPane 등과 같은 고급 기능
- Java는 플랫폼 독립적인 언어이며 모든 클라이언트 시스템에서 실행됩니다. 플랫폼별 O/S가 소유하고 제공하는 GUI 모양과 느낌은 Swing 구성 요소를 사용하여 구성된 응용 프로그램의 GUI에 영향을 주지 않습니다.
- 경량 구성 요소: JDK 1.1부터 AWT를 지원하는 경량 컴포넌트 개발이 시작되었습니다. 구성 요소가 경량으로 간주되려면 Java가 아닌(O/s 기반) 시스템 클래스에 종속되어서는 안 됩니다. Swing 구성 요소에는 Java의 모양과 느낌 클래스가 지원하는 자체 보기가 있습니다.
- 플러그형 모양과 느낌: 이 기능을 사용하면 사용자는 응용 프로그램을 다시 시작하지 않고도 Swing 구성 요소의 모양과 느낌을 전환할 수 있습니다. Swing 라이브러리는 프로그램이 실행되는 모든 플랫폼에서 동일하게 유지되는 구성 요소의 모양과 느낌을 지원합니다. Swing 라이브러리는 애플리케이션 GUI의 모양과 느낌을 결정하는 데 있어 실질적인 유연성을 제공하는 API를 제공합니다.
- 고도로 맞춤화 가능 – 시각적인 모양은 내부 표현과 무관하므로 스윙 컨트롤은 매우 쉬운 방법으로 사용자 정의할 수 있습니다.
- 풍부한 컨트롤 – Swing은 Tree TabbedPane, 슬라이더, 색상 선택기 및 테이블 컨트롤과 같은 풍부한 고급 컨트롤 세트를 제공합니다.
스윙 클래스 계층 구조

MVC 연결
- 일반적으로 시각적 구성요소는 세 가지 뚜렷한 측면:
- 구성요소가 화면에 렌더링될 때 표시되는 방식입니다.
- 구성 요소가 사용자에게 반응하는 방식입니다.
- 구성 요소와 관련된 상태 정보입니다.
- 수년에 걸쳐 하나의 구성 요소 아키텍처가 매우 효과적인 것으로 입증되었습니다. 모델-뷰-컨트롤러 또는 MVC 줄여서.
- MVC 용어로 모델 구성 요소와 관련된 상태 정보에 해당합니다.
- 그만큼 보다 모델의 현재 상태에 의해 영향을 받는 뷰의 모든 측면을 포함하여 구성 요소가 화면에 표시되는 방식을 결정합니다.
- 그만큼 제어 장치 구성 요소가 사용자에게 반응하는 방식을 결정합니다.
가장 간단한 Swing 구성요소는 다음과 같이 AWT 구성요소보다 훨씬 뛰어난 기능을 갖습니다.
- 스윙 버튼과 라벨은 텍스트 대신 또는 텍스트 외에 이미지를 표시할 수 있습니다.
- 대부분의 Swing 구성 요소 주위의 테두리는 쉽게 변경할 수 있습니다. 예를 들어, Swing 라벨 외부 주위에 1픽셀 테두리를 두는 것은 쉽습니다.
- 스윙 구성요소는 직사각형일 필요는 없습니다. 예를 들어 버튼은 둥글 수 있습니다.
- 이제 스크린 리더와 같은 최신 Assertive 기술을 사용하면 Swing 구성 요소에서 쉽게 정보를 얻을 수 있습니다. 예: 화면 판독기 도구는 스윙 버튼이나 라벨에 표시되는 텍스트를 쉽게 캡처할 수 있습니다.
Java 스윙 프로그램의 예
예 1: GFG WEB 사이트 클릭 메시지를 표시하기 위해 레이블(스윙)을 사용하는 프로그램 개발:
자바
자바 선택 정렬
// Java program using label (swing)> // to display the message GFG WEB Site Click> import> java.io.*;> import> javax.swing.*;> // Main class> class> GFG {> >// Main driver method> >public> static> void> main(String[] args)> >{> >// Creating instance of JFrame> >JFrame frame =>new> JFrame();> >// Creating instance of JButton> >JButton button =>new> JButton(>' GFG WebSite Click'>);> >// x axis, y axis, width, height> >button.setBounds(>150>,>200>,>220>,>50>);> >// adding button in JFrame> >frame.add(button);> >// 400 width and 500 height> >frame.setSize(>500>,>600>);> >// using no layout managers> >frame.setLayout(>null>);> >// making the frame visible> >frame.setVisible(>true>);> >}> }> |
>
>
산출:

예제 2: OK, SUBMIT, CANCEL이라는 캡션이 있는 세 개의 버튼을 만드는 프로그램을 작성하세요.
자바
// Java program to create three buttons> // with caption OK, SUBMIT, CANCEL> import> java.awt.*;> class> button {> >button()> >{> >Frame f =>new> Frame();> >// Button 1 created> >// OK button> >Button b1 =>new> Button(>'OK'>);> >b1.setBounds(>100>,>50>,>50>,>50>);> >f.add(b1);> >// Button 2 created> >// Submit button> >Button b2 =>new> Button(>'SUBMIT'>);> >b2.setBounds(>100>,>101>,>50>,>50>);> >f.add(b2);> > >// Button 3 created> >// Cancel button> >Button b3 =>new> Button(>'CANCEL'>);> >b3.setBounds(>100>,>150>,>80>,>50>);> >f.add(b3);> >f.setSize(>500>,>500>);> >f.setLayout(>null>);> >f.setVisible(>true>);> >}> >public> static> void> main(String a[]) {>new> button(); }> }> |
자바의 tostring
>
조인 및 조인 유형
>
산출:

예제 3: 프레임에 체크박스를 추가하는 프로그램
자바
// Java Swing Program to Add Checkbox> // in the Frame> import> java.awt.*;> // Driver Class> class> Lan {> >// Main Function> >Lan()> >{> >// Frame Created> >Frame f =>new> Frame();> >Label l1 =>new> Label(>'Select known Languages'>);> >l1.setBounds(>100>,>50>,>120>,>80>);> >f.add(l1);> >// CheckBox created> >Checkbox c2 =>new> Checkbox(>'Hindi'>);> >c2.setBounds(>100>,>150>,>50>,>50>);> >f.add(c2);> >// CheckBox created> >Checkbox c3 =>new> Checkbox(>'English'>);> >c3.setBounds(>100>,>200>,>80>,>50>);> >f.add(c3);> >// CheckBox created> >Checkbox c4 =>new> Checkbox(>'marathi'>);> >c4.setBounds(>100>,>250>,>80>,>50>);> >f.add(c4);> >f.setSize(>500>,>500>);> >f.setLayout(>null>);> >f.setVisible(>true>);> >}> >public> static> void> main(String ar[]) {>new> Lan(); }> }> |
>
>
산출:

Swing Class의 구성 요소 작업 비율
| 수업 | 설명 |
|---|---|
| 요소 | 구성 요소는 Java SWING의 메뉴가 아닌 사용자 인터페이스 컨트롤에 대한 추상 기본 클래스입니다. 구성 요소는 그래픽 표현으로 개체를 나타냅니다. |
| 컨테이너 | 컨테이너는 Java SWING 구성요소를 담을 수 있는 구성요소입니다. |
| JComponent | JComponent는 모든 스윙 UI 구성 요소에 대한 기본 클래스입니다. JComponent에서 상속된 스윙 구성 요소를 사용하려면 해당 구성 요소는 루트가 최상위 Java Swing 컨테이너인 포함 계층 구조에 있어야 합니다. |
| JLabel | JLabel은 컨테이너에 텍스트를 배치하기 위한 객체 구성 요소입니다. |
| J버튼 | 이 클래스는 레이블이 지정된 버튼을 만듭니다. |
| JColorChooser | JColorChooser는 사용자가 색상을 조작하고 선택할 수 있도록 설계된 컨트롤 창을 제공합니다. |
| JCheckBox | JCheckBox는 on(true) 또는 off(false) 상태일 수 있는 그래픽(GUI) 구성 요소입니다. |
| JRadio버튼 | JRadioButton 클래스는 켜짐(true) 또는 꺼짐(false) 상태일 수 있는 그래픽(GUI) 구성 요소입니다. 그룹에서 |
| JList | JList 구성 요소는 텍스트 항목의 스크롤 목록으로 사용자를 나타냅니다. |
| JComboBox | JComboBox 구성 요소는 사용자에게 선택 메뉴를 표시합니다. |
| JTextField | JTextField 객체는 한 줄의 텍스트를 편집할 수 있는 텍스트 구성 요소입니다. |
| JPassword필드 | JPasswordField 객체는 비밀번호 입력에 특화된 텍스트 구성 요소입니다. |
| JTextArea | JTextArea 객체는 여러 줄의 텍스트를 편집할 수 있는 텍스트 구성 요소입니다. |
| 이미지콘 | ImageIcon 컨트롤은 이미지에서 아이콘을 그리는 Icon 인터페이스의 구현입니다. |
| JScrollbar | JScrollbar 컨트롤은 사용자가 범위 값에서 선택할 수 있도록 스크롤 막대 구성 요소를 나타냅니다. |
| JOptionPane | JOptionPane은 사용자에게 값이나 항목을 묻는 표준 대화 상자 세트를 제공합니다. |
| JFileChooser | 제어하는 JFileChooser는 사용자가 파일을 선택할 수 있는 대화 상자 창을 나타냅니다. |
| JProgressBar | 작업이 완료될 때까지 진행률 표시줄에 작업 완료율이 표시됩니다. |
| J슬라이드 | JSlider 이 클래스는 사용자가 제한된 간격 내에서 손잡이를 밀어 값을 사용하여 그래픽(GUI)으로 선택할 수 있도록 합니다. |
| JSpinner | JSpinner 이 클래스는 사용자가 정렬된 시퀀스의 숫자 또는 개체 값을 사용하여 선택할 수 있는 필드가 있는 단일 라인 입력입니다. |