Java GUI #1

HH_Nebula·2022년 9월 21일
0

GUI란?

Graphic User Interface 의 약자이며 프로그램이 실행될 때 메뉴바, 툴바 등에 버튼들이 보여지게 해서 마우스 클릭과 같은 동작으로 메뉴를 실행시키며 진행하는 사용 방식이다.

GUI 이전에 학습한 내용들은 Command Line Interface 즉 CLI 의 실행 방식으로 사용하였다.


GUI - Graphic User Interface

1. AWT ( Abstract Window Toolkit )

Java 에서는 GUI 프로그래밍 ( 윈도우 프로그래밍 ) 을 위한 도구로 다양한 컴포넌트 API를 제공한다. AWT 는 Java 전용 컴포넌트가 아닌 OS용 컴포넌트로 표현되는 것이 특징이다.

즉, 실행 환경 OS 에 따라 GUI 화면의 모양이 다르다.

2. Swing

Java AWT를 확장한 GUI 프로그래밍 도구로 AWT 보다 더 많은 종류의 컴포넌트를 제공하며, OS용 컴포넌트를 사용하지 않고 100% Java 전용 컴포넌트를 사용한다. AWT 컴포넌트 클래스 명 앞에 J 를 붙여 구분한다.

AWT 에서 Button 이라면, Swing 에서는 JButton

즉, OS가 무엇이던 간에 동일한 모양을 유지한다.

3. 컨테이너 Container

컨테이너는 다른 컴포넌트를 포함할 수 있는 GUI 컴포넌트 이다.
다른 컨테이너에 포함될 수도 있으며, 독립적으로 존재할 수 있다.
스스로 화면에 자기 자신을 출력하는 컨테이너로는 JFrame , Jdoalog , JApplet 이 있다.

4. 컴포넌트 Component

컨테이너에 포함되어 출력되는 GUI 객체이다.
GUI 컴포넌트의 최상위 클래스는 java.awt.Component 클래스이다.
Swing 컴포넌트의 최상위 클래스는 javax.swing.JComponet 이다.

5. 컨테이너와 컴포넌트의 포함 관계

package sample;

import java.awt.GridLayout;

import javax.swing.*;

public class GUIEx extends JFrame {

	public GUIEx() {
		setTitle("컨테이너 & 컴포넌트");
		setSize(500, 400);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setLayout(new GridLayout(1, 2, 20, 20));

		JPanel panel1 = new JPanel();
		JPanel panel2 = new JPanel();

		panel1.setLayout(new GridLayout(3, 1));
		panel1.add(new JLabel("JLabel - Panel 1"));
		panel1.add(new JTextField("TextField"));
		panel1.add(new JButton("Ok"));
		panel1.setSize(200, 300);

		panel2.setLayout(new GridLayout(5, 1));
		panel2.add(new JLabel("JLabel - Panel 2"));
		panel2.add(new JRadioButton("JRadioButton"));
		panel2.add(new JRadioButton("JRadioButton"));
		panel2.add(new JCheckBox("JCheckBox"));
		panel2.add(new JCheckBox("JCheckBox"));
		panel2.setSize(200, 300);

		add(panel1);
		add(panel2);

		setVisible(true);

	}

	public static void main(String[] args) {
		new GUIEx();
	}

}

1개의 JFrame 안에 좌우 2개의 JPannel
좌측 JPanel 위에서부터 JLabel , JTextField , JButton
우측 JPanel 위에서부터 JLabel , JRadioButton , JCheckBox

최상의 컨테이너인 JFrame 안에 JPanel , JButton 등 컴포넌트를 붙인 JPanel 을 붙인다.

profile
공부하고 기록하고 복습하고

0개의 댓글