스윙-퀵 가이드
Swing API는 개발자가 JAVA 기반 프런트 엔드 / GUI 응용 프로그램을 쉽게 만들 수 있도록 확장 가능한 GUI 구성 요소 집합입니다. AWT API 위에 빌드되며 AWT 제어에 해당하는 거의 모든 제어가 있기 때문에 AWT API를 대체하는 역할을합니다. Swing 구성 요소는 Model-View-Controller 아키텍처를 따라 다음 기준을 충족합니다.
단일 API는 여러 룩앤필을 지원하기에 충분합니다.
API는 모델 기반이되므로 최상위 API가 데이터를 가질 필요가 없습니다.
API는 빌더 도구와 IDE가 개발자에게 더 나은 서비스를 제공 할 수 있도록 Java Bean 모델을 사용하는 것입니다.
MVC 아키텍처
Swing API 아키텍처는 다음과 같은 방식으로 느슨한 기반 MVC 아키텍처를 따릅니다.
모델은 구성 요소의 데이터를 나타냅니다.
보기는 구성 요소 데이터의 시각적 표현을 나타냅니다.
Controller는 뷰에서 사용자의 입력을 받아 구성 요소 데이터의 변경 사항을 반영합니다.
Swing 구성 요소에는 Model이 별도의 요소로 있고 View 및 Controller 부분은 User Interface 요소에 포함되어 있습니다. 그 때문에 Swing은 플러그 형 룩앤필 아키텍처를 가지고 있습니다.
스윙 기능
Light Weight − Swing API 컨트롤은 기본 운영 체제 호출 대신 순수한 JAVA 코드를 사용하여 주로 렌더링되므로 Swing 구성 요소는 기본 운영 체제의 API와 독립적입니다.
Rich Controls − Swing은 Tree, TabbedPane, 슬라이더, 색상 선택기 및 테이블 컨트롤과 같은 풍부한 고급 컨트롤 세트를 제공합니다.
Highly Customizable − 스윙 컨트롤은 시각적 외관이 내부 표현과 무관하므로 매우 쉽게 사용자 정의 할 수 있습니다.
Pluggable look-and-feel − SWING 기반 GUI 응용 프로그램의 모양과 느낌은 사용 가능한 값에 따라 런타임에 변경할 수 있습니다.
이 섹션에서는 컴퓨터에서 Java를 다운로드하고 설정하는 방법에 대해 설명합니다. 다음 단계를 사용하여 환경을 설정하십시오.
Java SE는 Java 다운로드 링크에서 무료로 사용할 수 있습니다 . 따라서 운영 체제에 따라 버전을 다운로드 할 수 있습니다.
지침에 따라 Java를 다운로드하고 .exe컴퓨터에 Java를 설치합니다. 시스템에 Java를 설치 한 후에는 올바른 설치 디렉토리를 가리 키도록 환경 변수를 설정해야합니다.
Windows 2000 / XP 용 경로 설정
Java를 설치했다고 가정합니다. c:\Program Files\java\jdk 디렉토리-
Step 1 − '내 컴퓨터'를 마우스 오른쪽 버튼으로 클릭하고 '속성'을 선택합니다.
Step 2 − '고급'탭에서 '환경 변수'버튼을 클릭합니다.
Step 3− 'Path'변수를 변경하여 Java 실행 파일의 경로도 포함하도록합니다. 예, 경로가 현재 다음으로 설정된 경우'C:\WINDOWS\SYSTEM32', 읽을 경로를 변경하십시오. 'C:\WINDOWS\SYSTEM32;c:\Program Files\java\jdk\bin'.
Windows 95 / 98 / ME 용 경로 설정
Java를 설치했다고 가정합니다. c:\Program Files\java\jdk 디렉토리-
Step 1 − 편집 'C:\autoexec.bat' 파일을 열고 끝에 다음 행을 추가하십시오. 'SET PATH=%PATH%;C:\Program Files\java\jdk\bin'.
Linux, UNIX, Solaris, FreeBSD에 대한 경로 설정
환경 변수 PATH는 Java 바이너리가 설치된 위치를 가리 키도록 설정되어야합니다. 이 작업을 수행하는 데 문제가 있으면 Shell 설명서를 참조하십시오.
예, 사용하는 경우 bash 셸로 다음 줄을 끝에 추가합니다. '.bashrc: export PATH=/path/to/java:$PATH'.
인기있는 Java 편집자
Java 프로그램을 작성하려면 텍스트 편집기가 필요합니다. 시장에는 훨씬 더 정교한 IDE가 있습니다. 그러나 지금은 다음 중 하나를 고려할 수 있습니다.
Notepad − Windows 컴퓨터에서는 메모장 (이 자습서에 권장 됨), TextPad와 같은 간단한 텍스트 편집기를 사용할 수 있습니다.
Netbeans − Netbeans는 오픈 소스이며 무료로 제공되는 Java IDE입니다. https://www.netbeans.org/index.html.
Eclipse − Eclipse는 Eclipse 오픈 소스 커뮤니티에서 개발 한 Java IDE이며 다음에서 다운로드 할 수 있습니다. https://www.eclipse.org/.
모든 사용자 인터페이스는 다음 세 가지 주요 측면을 고려합니다.
UI Elements− 이는 사용자가 결국보고 상호 작용하는 핵심 시각적 요소입니다. GWT는 기본에서 복잡한 것에 이르기까지 널리 사용되는 공통 요소의 방대한 목록을 제공하며,이 튜토리얼에서 다룰 것입니다.
Layouts− UI 요소가 화면에서 구성되는 방식을 정의하고 GUI (그래픽 사용자 인터페이스)에 최종 모양과 느낌을 제공합니다. 이 부분은 레이아웃 장에서 다룰 것입니다.
Behavior− 사용자가 UI 요소와 상호 작용할 때 발생하는 이벤트입니다. 이 부분은 이벤트 처리 장에서 다룹니다.
모든 SWING 컨트롤은 다음 Component 클래스 계층 구조에서 속성을 상속합니다.
S. 아니. | 클래스 및 설명 |
---|---|
1 | 구성 요소 구성 요소는 SWING의 메뉴가 아닌 사용자 인터페이스 컨트롤에 대한 추상 기본 클래스입니다. 구성 요소는 그래픽 표현이있는 개체를 나타냅니다. |
2 | 컨테이너 컨테이너는 다른 SWING 구성 요소를 포함 할 수있는 구성 요소입니다. |
삼 | JComponent JComponent는 모든 SWING UI 구성 요소의 기본 클래스입니다. JComponent에서 상속 된 SWING 구성 요소를 사용하려면 구성 요소가 루트가 최상위 수준의 SWING 컨테이너 인 포함 계층 구조에 있어야합니다. |
SWING UI 요소
다음은 SWING을 사용하여 GUI를 설계 할 때 일반적으로 사용되는 컨트롤 목록입니다.
S. 아니. | 클래스 및 설명 |
---|---|
1 | JLabel JLabel 객체는 컨테이너에 텍스트를 배치하기위한 구성 요소입니다. |
2 | JButton 이 클래스는 레이블이 지정된 버튼을 만듭니다. |
삼 | JColorChooser JColorChooser는 사용자가 색상을 조작하고 선택할 수 있도록 설계된 컨트롤 창을 제공합니다. |
4 | J 체크 박스 JCheckBox는 다음 중 하나에있을 수있는 그래픽 구성 요소입니다. on (true) 또는 off (거짓) 상태. |
5 | JRadioButton JRadioButton 클래스는 다음 중 하나에있을 수있는 그래픽 구성 요소입니다. on (true) 또는 off(거짓) 상태. 그룹에서. |
6 | JList JList 구성 요소는 사용자에게 텍스트 항목의 스크롤 목록을 제공합니다. |
7 | JComboBox JComboBox 구성 요소는 사용자에게 선택 메뉴를 표시하도록 제공합니다. |
8 | JTextField JTextField 객체는 한 줄의 텍스트를 편집 할 수있는 텍스트 구성 요소입니다. |
9 | JPasswordField JPasswordField 객체는 암호 입력에 특화된 텍스트 구성 요소입니다. |
10 | JTextArea JTextArea 객체는 여러 줄의 텍스트를 편집 할 수있는 텍스트 구성 요소입니다. |
11 | ImageIcon ImageIcon 컨트롤은 이미지에서 아이콘을 그리는 아이콘 인터페이스의 구현입니다. |
12 | JScrollbar Scrollbar 컨트롤은 사용자가 값 범위에서 선택할 수 있도록 스크롤 막대 구성 요소를 나타냅니다. |
13 | JOptionPane JOptionPane은 사용자에게 값을 입력하거나 무언가를 알려주는 표준 대화 상자 세트를 제공합니다. |
14 | JFileChooser JFileChooser 컨트롤은 사용자가 파일을 선택할 수있는 대화 창을 나타냅니다. |
15 | JProgressBar 작업이 완료 될 때까지 진행되면 진행률 표시 줄에 작업의 완료율이 표시됩니다. |
16 | JSlider JSlider를 사용하면 제한된 간격 내에서 노브를 밀어 값을 그래픽으로 선택할 수 있습니다. |
17 | JSpinner JSpinner는 사용자가 순서가 지정된 시퀀스에서 숫자 또는 객체 값을 선택할 수있는 한 줄 입력 필드입니다. |
이 장에서는 이벤트와 그 유형에 대해 배우고 이벤트를 처리하는 방법도 배웁니다. 더 나은 이해를 위해 장 끝에 예제가 제공됩니다.
이벤트 란?
개체 상태의 변화는 다음과 같이 알려져 있습니다. Event즉, 이벤트는 소스 상태의 변화를 설명합니다. 그래픽 사용자 인터페이스 구성 요소와의 사용자 상호 작용의 결과로 이벤트가 생성됩니다. 예를 들어 버튼 클릭, 마우스 이동, 키보드를 통한 문자 입력, 목록에서 항목 선택, 페이지 스크롤 등이 이벤트 발생을 유발하는 활동입니다.
이벤트 유형
이벤트는 크게 두 가지 범주로 분류 할 수 있습니다.
Foreground Events− 이러한 이벤트는 사용자의 직접적인 상호 작용이 필요합니다. 그래픽 사용자 인터페이스에서 그래픽 구성 요소와 상호 작용하는 사람의 결과로 생성됩니다. 예를 들어 버튼 클릭, 마우스 이동, 키보드를 통한 문자 입력, 목록에서 항목 선택, 페이지 스크롤 등이 있습니다.
Background Events− 이러한 이벤트에는 최종 사용자의 상호 작용이 필요합니다. 운영 체제 인터럽트, 하드웨어 또는 소프트웨어 오류, 타이머 만료 및 작업 완료는 백그라운드 이벤트의 몇 가지 예입니다.
이벤트 처리 란 무엇입니까?
이벤트 처리는 이벤트를 제어하고 이벤트가 발생할 경우 어떤 일이 발생해야하는지 결정하는 메커니즘입니다. 이 메커니즘에는 이벤트가 발생할 때 실행되는 이벤트 핸들러라고하는 코드가 있습니다.
Java는 위임 이벤트 모델을 사용하여 이벤트를 처리합니다. 이 모델은 이벤트를 생성하고 처리하기위한 표준 메커니즘을 정의합니다.
위임 이벤트 모델에는 다음과 같은 주요 참가자가 있습니다.
Source− 소스는 이벤트가 발생하는 객체입니다. Source는 발생한 이벤트에 대한 정보를 자신의 핸들러에 제공 할 책임이 있습니다. Java는 소스 객체에 대한 클래스를 제공합니다.
Listener− 이벤트 핸들러라고도합니다. 리스너는 이벤트에 대한 응답을 생성합니다. Java 구현의 관점에서 리스너도 객체입니다. 리스너는 이벤트를받을 때까지 기다립니다. 이벤트가 수신되면 리스너는 이벤트를 처리 한 다음 반환합니다.
이 접근 방식의 이점은 사용자 인터페이스 논리가 이벤트를 생성하는 논리와 완전히 분리된다는 것입니다. 사용자 인터페이스 요소는 이벤트 처리를 별도의 코드로 위임 할 수 있습니다.
이 모델에서는 리스너가 이벤트 알림을받을 수 있도록 소스 객체에 리스너를 등록해야합니다. 이는 이벤트 알림을 수신하려는 리스너에게만 전송되기 때문에 이벤트를 처리하는 효율적인 방법입니다.
이벤트 처리와 관련된 단계
Step 1 − 사용자가 버튼을 클릭하면 이벤트가 생성됩니다.
Step 2 − 해당 이벤트 클래스의 객체가 자동으로 생성되고 소스 및 이벤트에 대한 정보가 동일한 객체 내에 채워집니다.
Step 3 − 이벤트 객체는 등록 된 리스너 클래스의 메소드로 전달됩니다.
Step 4 − 메서드가 실행되고 반환됩니다.
청취자에 대해 기억해야 할 사항
리스너 클래스를 디자인하려면 몇 가지 리스너 인터페이스를 개발해야합니다. 이러한 리스너 인터페이스는 리스너 클래스에 의해 구현되어야하는 일부 공개 추상 콜백 메서드를 예측합니다.
사전 정의 된 인터페이스를 구현하지 않으면 클래스가 소스 객체에 대한 리스너 클래스로 작동 할 수 없습니다.
콜백 방법
API 제공자가 제공하고 애플리케이션 프로그래머가 정의하고 애플리케이션 개발자가 호출하는 메소드입니다. 여기서 콜백 메서드는 이벤트 메서드를 나타냅니다. 이벤트에 대한 응답으로 java jre는 콜백 메소드를 실행합니다. 이러한 모든 콜백 메서드는 리스너 인터페이스에서 제공됩니다.
구성 요소가 일부 리스너가 이벤트를 수신하도록하려면 소스가 리스너에 자신을 등록해야합니다.
이벤트 처리 예
원하는 편집기를 사용하여 다음 Java 프로그램을 만듭니다. D:/ > SWING > com > tutorialspoint > gui >
SwingControlDemo.java
package com.tutorialspoint.gui;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class SwingControlDemo {
private JFrame mainFrame;
private JLabel headerLabel;
private JLabel statusLabel;
private JPanel controlPanel;
public SwingControlDemo(){
prepareGUI();
}
public static void main(String[] args){
SwingControlDemo swingControlDemo = new SwingControlDemo();
swingControlDemo.showEventDemo();
}
private void prepareGUI(){
mainFrame = new JFrame("Java SWING Examples");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout(3, 1));
headerLabel = new JLabel("",JLabel.CENTER );
statusLabel = new JLabel("",JLabel.CENTER);
statusLabel.setSize(350,100);
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
System.exit(0);
}
});
controlPanel = new JPanel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
private void showEventDemo(){
headerLabel.setText("Control in action: Button");
JButton okButton = new JButton("OK");
JButton submitButton = new JButton("Submit");
JButton cancelButton = new JButton("Cancel");
okButton.setActionCommand("OK");
submitButton.setActionCommand("Submit");
cancelButton.setActionCommand("Cancel");
okButton.addActionListener(new ButtonClickListener());
submitButton.addActionListener(new ButtonClickListener());
cancelButton.addActionListener(new ButtonClickListener());
controlPanel.add(okButton);
controlPanel.add(submitButton);
controlPanel.add(cancelButton);
mainFrame.setVisible(true);
}
private class ButtonClickListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
if( command.equals( "OK" )) {
statusLabel.setText("Ok Button clicked.");
} else if( command.equals( "Submit" ) ) {
statusLabel.setText("Submit Button clicked.");
} else {
statusLabel.setText("Cancel Button clicked.");
}
}
}
}
명령 프롬프트를 사용하여 프로그램을 컴파일하십시오. 이동D:/ > SWING 다음 명령을 입력하십시오.
D:\AWT>javac com\tutorialspoint\gui\SwingControlDemo.java
오류가 발생하지 않으면 컴파일이 성공한 것입니다. 다음 명령을 사용하여 프로그램을 실행하십시오.
D:\AWT>java com.tutorialspoint.gui.SwingControlDemo
다음 출력을 확인하십시오.
이벤트 클래스는 이벤트를 나타냅니다. Java는 다양한 Event 클래스를 제공하지만 더 자주 사용되는 클래스에 대해서만 설명합니다.
EventObject 클래스
모든 이벤트 상태 객체가 파생되는 루트 클래스입니다. 모든 이벤트는 개체에 대한 참조로 구성됩니다.source, 이는 논리적으로 해당 이벤트가 처음 발생한 대상으로 간주됩니다. 이 클래스는java.util 꾸러미.
클래스 선언
다음은에 대한 선언입니다. java.util.EventObject 클래스-
public class EventObject
extends Object
implements Serializable
들
다음은 필드입니다. java.util.EventObject 클래스-
protected Object source − 이벤트가 처음 발생한 객체.
클래스 생성자
Sr. 아니. | 생성자 및 설명 |
---|---|
1 | EventObject(Object source) 프로토 타입 이벤트를 생성합니다. |
수업 방법
Sr. 아니. | 방법 및 설명 |
---|---|
1 | Object getSource() 이벤트가 처음 발생한 개체입니다. |
2 | String toString() 이 EventObject의 문자열 표현을 리턴합니다. |
상속 된 메서드
이 클래스는 다음 클래스에서 메서드를 상속합니다-
- java.lang.Object
SWING 이벤트 클래스
다음은 일반적으로 사용되는 이벤트 클래스 목록입니다.
Sr. 아니. | 클래스 및 설명 |
---|---|
1 | AWTEvent 모든 SWING 이벤트에 대한 루트 이벤트 클래스입니다. 이 클래스와 하위 클래스는 원본을 대체합니다.java.awt.Event 수업. |
2 | ActionEvent 버튼을 클릭하거나 목록의 항목을 더블 클릭하면 ActionEvent가 생성됩니다. |
삼 | InputEvent InputEvent 클래스는 모든 구성 요소 수준 입력 이벤트에 대한 루트 이벤트 클래스입니다. |
4 | KeyEvent 캐릭터를 입력하면 키 이벤트가 생성됩니다. |
5 | MouseEvent 이 이벤트는 구성 요소에서 마우스 동작이 발생했음을 나타냅니다. |
6 | WindowEvent 이 클래스의 개체는 창의 상태 변경을 나타냅니다. |
7 | 조정 이벤트 이 클래스의 개체는 조정 가능한 개체에서 발생하는 조정 이벤트를 나타냅니다. |
8 | ComponentEvent 이 클래스의 개체는 창의 상태 변경을 나타냅니다. |
9 | ContainerEvent 이 클래스의 개체는 창의 상태 변경을 나타냅니다. |
10 | MouseMotionEvent 이 클래스의 개체는 창의 상태 변경을 나타냅니다. |
11 | PaintEvent 이 클래스의 개체는 창의 상태 변경을 나타냅니다. |
이벤트 리스너는 이벤트 처리를 담당하는 인터페이스를 나타냅니다. Java는 다양한 이벤트 리스너 클래스를 제공하지만 더 자주 사용되는 클래스에 대해서만 설명합니다. 이벤트 리스너 메서드의 모든 메서드에는 EventObject 클래스의 하위 클래스 인 객체로 단일 인수가 있습니다. 예를 들어, 마우스 이벤트 리스너 메소드는 MouseEvent의 인스턴스를 허용합니다. 여기서 MouseEvent는 EventObject에서 파생됩니다.
EventListner 인터페이스
모든 리스너 인터페이스가 확장해야하는 마커 인터페이스입니다. 이 클래스는java.util 꾸러미.
클래스 선언
다음은에 대한 선언입니다. java.util.EventListener 인터페이스-
public interface EventListener
SWING 이벤트 리스너 인터페이스
다음은 일반적으로 사용되는 이벤트 리스너 목록입니다.
Sr. 아니. | 클래스 및 설명 |
---|---|
1 | ActionListener 이 인터페이스는 작업 이벤트를 수신하는 데 사용됩니다. |
2 | ComponentListener 이 인터페이스는 구성 요소 이벤트를 수신하는 데 사용됩니다. |
삼 | ItemListener 이 인터페이스는 항목 이벤트를 수신하는 데 사용됩니다. |
4 | KeyListener 이 인터페이스는 키 이벤트를 수신하는 데 사용됩니다. |
5 | MouseListener 이 인터페이스는 마우스 이벤트를 수신하는 데 사용됩니다. |
6 | WindowListener 이 인터페이스는 창 이벤트를 수신하는 데 사용됩니다. |
7 | AdjustmentListener 이 인터페이스는 조정 이벤트를 수신하는 데 사용됩니다. |
8 | ContainerListener 이 인터페이스는 컨테이너 이벤트를 수신하는 데 사용됩니다. |
9 | MouseMotionListener 이 인터페이스는 마우스 모션 이벤트를 수신하는 데 사용됩니다. |
10 | FocusListener 이 인터페이스는 포커스 이벤트를 수신하는 데 사용됩니다. |
어댑터는 다양한 이벤트를 수신하기위한 추상 클래스입니다. 이 클래스의 메서드는 비어 있습니다. 이러한 클래스는 리스너 객체를 생성하기위한 편의를 위해 존재합니다.
스윙 어댑터
다음은 SWING에서 GUI 이벤트를 수신하는 동안 일반적으로 사용되는 어댑터 목록입니다.
Sr. 아니. | 어댑터 및 설명 |
---|---|
1 | FocusAdapter 포커스 이벤트를 받기위한 추상 어댑터 클래스입니다. |
2 | KeyAdapter 키 이벤트를 받기위한 추상 어댑터 클래스입니다. |
삼 | MouseAdapter 마우스 이벤트를 받기위한 추상 어댑터 클래스입니다. |
4 | MouseMotionAdapter 마우스 모션 이벤트를 받기위한 추상 어댑터 클래스입니다. |
5 | WindowAdapter 창 이벤트를 받기위한 추상 어댑터 클래스입니다. |
레이아웃은 컨테이너 내의 구성 요소 배열을 나타냅니다. 다른 방법으로, 레이아웃은 컨테이너 내의 특정 위치에 구성 요소를 배치한다고 말할 수 있습니다. 컨트롤 레이아웃 작업은 레이아웃 관리자에 의해 자동으로 수행됩니다.
레이아웃 관리자
레이아웃 관리자는 컨테이너 내의 모든 구성 요소를 자동으로 배치합니다. 레이아웃 관리자를 사용하지 않더라도 구성 요소는 기본 레이아웃 관리자에 의해 배치됩니다. 손으로 컨트롤을 배치하는 것은 가능하지만 다음 두 가지 이유 때문에 매우 어려워집니다.
컨테이너 내에서 많은 수의 컨트롤을 처리하는 것은 매우 지루합니다.
일반적으로 구성 요소의 너비 및 높이 정보는 정렬해야 할 때 제공되지 않습니다.
Java는 컨트롤을 배치하기위한 다양한 레이아웃 관리자를 제공합니다. 크기, 모양 및 배열과 같은 속성은 레이아웃 관리자마다 다릅니다. 애플릿 또는 응용 프로그램 창의 크기가 변경되면 구성 요소의 크기, 모양 및 배열도 이에 따라 변경됩니다. 즉, 레이아웃 관리자가 애플릿 뷰어 또는 응용 프로그램 창의 크기에 맞게 조정됩니다.
레이아웃 관리자는 모든 컨테이너 개체와 연결됩니다. 각 레이아웃 관리자는 LayoutManager 인터페이스를 구현하는 클래스의 객체입니다.
다음은 레이아웃 관리자의 기능을 정의하는 인터페이스입니다.
Sr. 아니. | 인터페이스 및 설명 |
---|---|
1 | LayoutManager LayoutManager 인터페이스는 해당 객체가 레이아웃 관리자 역할을 할 클래스에 의해 구현되어야하는 메소드를 선언합니다. |
2 | LayoutManager2 LayoutManager2는 LayoutManager의 하위 인터페이스입니다. 이 인터페이스는 레이아웃 제약 객체를 기반으로 컨테이너를 레이아웃하는 방법을 알고있는 클래스를위한 것입니다. |
AWT 레이아웃 관리자 클래스
다음은 AWT를 사용하여 GUI를 설계하는 동안 일반적으로 사용되는 컨트롤 목록입니다.
Sr. 아니. | LayoutManager 및 설명 |
---|---|
1 | BorderLayout borderlayout은 구성 요소를 동쪽, 서쪽, 북쪽, 남쪽 및 중앙의 5 개 영역에 맞게 정렬합니다. |
2 | CardLayout CardLayout 개체는 컨테이너의 각 구성 요소를 카드로 취급합니다. 한 번에 하나의 카드 만 표시됩니다. |
삼 | FlowLayout FlowLayout은 기본 레이아웃입니다. 구성 요소를 방향 흐름으로 배치합니다. |
4 | 그리드 레이아웃 GridLayout은 직사각형 그리드의 형태로 구성 요소를 관리합니다. |
5 | GridBagLayout 이것은 가장 유연한 레이아웃 관리자 클래스입니다. GridBagLayout의 개체는 동일한 크기의 구성 요소를 요구하지 않고 구성 요소를 수직, 수평 또는 기준선을 따라 정렬합니다. |
6 | GroupLayout GroupLayout은 컨테이너에 배치하기 위해 구성 요소를 계층 적으로 그룹화합니다. |
7 | SpringLayout SpringLayout은 일련의 제약 조건에 따라 연관된 컨테이너의 자식을 배치합니다. |
모든 최상위 창에는 관련된 메뉴 모음이 있다는 것을 알고 있습니다. 이 메뉴 표시 줄은 최종 사용자가 사용할 수있는 다양한 메뉴 선택 항목으로 구성됩니다. 또한 각 선택에는 드롭 다운 메뉴라고하는 옵션 목록이 포함되어 있습니다. Menu 및 MenuItem 컨트롤은 MenuComponent 클래스의 하위 클래스입니다.
메뉴 계층
메뉴 컨트롤
Sr. 아니. | 클래스 및 설명 |
---|---|
1 | JMenuBar JMenuBar 객체는 최상위 창과 연관됩니다. |
2 | JMenuItem 메뉴의 항목은 JMenuItem 또는 해당 서브 클래스에 속해야합니다. |
삼 | JMenu JMenu 객체는 메뉴 표시 줄에서 표시되는 풀다운 메뉴 구성 요소입니다. |
4 | JCheckboxMenuItem JCheckboxMenuItem은 JMenuItem의 서브 클래스입니다. |
5 | JRadioButtonMenuItem JRadioButtonMenuItem은 JMenuItem의 하위 클래스입니다. |
6 | JPopupMenu JPopupMenu는 컴포넌트 내의 지정된 위치에서 동적으로 팝업 될 수 있습니다. |
컨테이너는 SWING GUI 구성 요소의 필수 부분입니다. 컨테이너는 구성 요소를 찾을 수있는 공간을 제공합니다. AWT의 컨테이너는 컴포넌트 자체이며 컴포넌트를 자체에 추가하는 기능을 제공합니다. 다음은 고려해야 할 몇 가지 주목할만한 사항입니다.
Container의 하위 클래스를 Container라고합니다. 예를 들어, JPanel, JFrame 및 JWindow.
컨테이너는 자신에게 컴포넌트 만 추가 할 수 있습니다.
기본 레이아웃은 각 컨테이너에 있으며 다음을 사용하여 재정의 할 수 있습니다. setLayout 방법.
스윙 컨테이너
다음은 SWING을 사용하여 GUI를 설계하면서 일반적으로 사용되는 컨테이너 목록입니다.
Sr. 아니. | 컨테이너 및 설명 |
---|---|
1 | 패널 JPanel은 가장 간단한 컨테이너입니다. 다른 패널을 포함하여 다른 구성 요소를 배치 할 수있는 공간을 제공합니다. |
2 | 틀 JFrame은 제목과 테두리가있는 최상위 창입니다. |
삼 | 창문 JWindow 객체는 테두리와 메뉴 바가없는 최상위 창입니다. |