logo

자바 스윙 소개

그네 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 연결

  • 일반적으로 시각적 구성요소는 세 가지 뚜렷한 측면:
    1. 구성요소가 화면에 렌더링될 때 표시되는 방식입니다.
    2. 구성 요소가 사용자에게 반응하는 방식입니다.
    3. 구성 요소와 관련된 상태 정보입니다.
  • 수년에 걸쳐 하나의 구성 요소 아키텍처가 매우 효과적인 것으로 입증되었습니다. 모델-뷰-컨트롤러 또는 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>);> >}> }>

>

>

산출:

메시지를 인쇄하고 클릭하는 Java Swing

예제 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 이 클래스는 사용자가 정렬된 시퀀스의 숫자 또는 개체 값을 사용하여 선택할 수 있는 필드가 있는 단일 라인 입력입니다.