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 |
댓글