본문 바로가기
학교/2-2학기(Java)

[11주차] 11/13(수) 강의내용

by C0MPAS 2024. 11. 13.

9.1 자바의 GUI

- AWT와 Swing 패키지

-> AWT

-> Swing


9.2 자바 GUI 패키지

- 컨테이너

-> 컨테이너란 다른 GUI 컴포넌트를 포함할 수 있는 컴포넌트이다

 

- 컴포넌트

-> 컴포넌트란 컨테이너와 달리 다른 컴포넌트를 포함할 수 없으며,

    컨테이너에 포함되어야 비로소 화면에 출력될 수 있는 GUI 객체이다

 

- 최상위 컨테이너

-> JFrame, JDialog, JApplet의 3가지가 이에 속한다

 

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


9.3 스윙 GUI 프로그램 만들기

- 스윙 프레임과 컨텐트팬

-> 스윙 프레임은 JFrame / Menu Bar / Content Pane 으로 구성된다

-> 스윙 프레임은 모든 스윙 컴포넌트들을 담는 최상위 컨테이너이다

    스윙에서 프레임의 역할을 수행하는 클래스가 JFrame 이다

-> 컨텐트팬은 메뉴를 제외한 모든 GUI 컴포넌트들을 부착하는 공간이다

 

- 프레임에 컴포넌트 붙이기

-> 타이틀 달기

-> 메뉴 붙이기

-> 컨텐트팬에 컴포넌트 달기

// 예제 9-1: 300x300 크기의 스윙 프레임 만들기

import java.awt.Container;
import javax.swing.*;

public class MyFrame extends JFrame{
	public MyFrame() {
		setTitle("300x300 스윙 프레임 만둘기");
        
		Container contentPane = getContentPane();
		JButton button = new JButton("Click");
		contentPane.add(button);

		setSize(300,300);
		setVisible(true);
	}

	public static void main(String[] args) {
		MyFrame frame = new MyFrame();
	}
}

 

 

- 스윙 응용프로그램의 종료

-> 프레임 윈도우의 오른쪽 상단에 있는 '프레임 종료 버튼(X)'은 프레임 윈도우를 닫는 버튼이지,

    프로그램을 종료시키는 버튼은 아니다

// 예제 9-2: 3개의 버튼 컴포넌트를 가진 스윙 프레임 만들기

import javax.swing.*;
import java.awt.*;

public class ContentPaneEx extends JFrame{
	public ContentPaneEx() {
		setTitle("CONTENTPANE과 JFRAME");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
		Container contentPane = getContentPane();
		contentPane.setBackground(Color.ORANGE);
		contentPane.setLayout(new FlowLayout());
        
		contentPane.add(new JButton("OK"));
		contentPane.add(new JButton("Cancel"));
		contentPane.add(new JButton("Ignore"));
        
		setSize(300, 150);
		setVisible(true);
	}

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

9.4 컨테이너와 배치

- 배치관리자의 종류

-> FlowLayout / BorderLayout / GridLayout / CardLayout

 

- 컨테이너의 디폴트 배치 관리자

 

- 컨테이너에 새로운 배치관리자 설정, setLayout() 메소드


9.5 FlowLayout 배치관리자

- FlowLayout의 생성자와 속성

FlowLayout( )
FlowLayout(int aLign)
FlowLayout(int aLign, int hGap, int vGap)

9.6 BorderLayout 배치관리자

- 배치방법

void add(Component comp, int index)

container.setLayout(new BorderLayout());
container.add(new JButton("div", BorderLayout.WEST);
container.add(new JButton("Calculate"), BorderLayout.CENTER);

9.7 GridLayout 배치관리자

- 예제 9-5


출처: 명품 JAVA Programming(개정 5판), 생능출판사

'학교 > 2-2학기(Java)' 카테고리의 다른 글

[12주차] 11/20(수) 강의내용  (1) 2024.11.20
[12주차] 11/18(월) 강의내용  (0) 2024.11.18
[11주차] 11/11(월) 강의내용  (2) 2024.11.11
[10주차] 11/4(월) 강의내용  (0) 2024.11.04
[9주차] 10/30(수) 강의내용  (1) 2024.10.30

댓글