AWT와 Swing 패키지
AWT(Abstract Windowing Toolkit) | 스윙(Swing) |
GUI 컴포넌트 Frame, Window, Panel, Dialog, Button 등 AWT의 컴포넌트들은 운영체제의 도움을 받아 화면에 출력 |
GUI 컴포넌트 JFram, JWindow, JPanel, JButton 등 Swing 컴포넌트들은 순수 자바 언어로 작성된 것으로 화면에 출력 |
컨테이너와 컴포넌트
컨테이너란?
다른 GUI 컴포넌트를 포함할 수 있는 컴포넌트이다.
컨테이너는 컴포넌트이면서 동시에 컨테이너이다.
java.awt.Component를 상속받기 때문에 컨테이너가 컴포넌트이기도 한 것이다.
컨테이너로 작동하는 클래스
AWT 컨테이너 - Frame, Panel, Applet, Dialog, Window
Swing 컨테이너 - JFrame, JPanel, JApplet, JDialog, JWindow
컴포넌트란?
컨테이너와 달리 다른 컴포넌트를 포함할 수 없으며, 컨테이너에 포함되어야 비로소 화면에 출력 될 수 있는 GUI 객체이다.
java.awt.Component를 상속받기 때문에, Component클래스에는 모든 컴포넌트들의 공통적인 속성과 기능이 작성되어 있다.(크기, 모양, 위치, 색, 폰트등에 관한 정보를 관리하는 변수와 그리기, 이동, 삭제 등 이벤트 처리에 관한 메소드 등 다양한 기능을 제고하는 함수가 있다.)
javax.swing,JComponent를 상속받으면, JComponent에서 스읭 컴포넌트들의 공통적인 기능이 작성되어 있다.
스윙 패키지 사용을 위한 import문
import java.awt.*; // 폰트 등 그래픽 처리를 위한 클래스들의 경로명 import java.awt.event.*; // 이벤트 처리에 필요한 기본 클래스들의 경로명 import javax.swing.*; // 스윙 컴포넌트 클래스들의 경로명 import javax.swing.event.*; // 스윙 이벤트 처리에 필요한 클래스들의 경로명 |
스위으로 프레임 만들기
javax.swing.*;
public class MyFrame extends JFrame { // JFrame 상속받음
public MyFrame() {
setTitle("스윙 프레임 예제1"); // 제목설정
setSize(300,300); // 프레임 크기 300x300
setVisible(true); // 프레임 출력
}
public static void main(String[] args) {
MyFrame frame = new MyFrame();
}
}
실행 결과]
3개의 버튼 컴포넌트를 가지 스윙 프레임 만들기
import javax.swing.*;
import java.awt.*;
public class ContentPaneEx extends JFrame {
public ContentPaneEx() {
setTitle("컨텐트팬에 버튼3개만들기"); // 프레임 타이틀 달기
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 프레임 윈도우를 닫으면 프로그램을 종료하도록 설정
Container contentPane = getContentPane(); // 컨텐트 팬을 알아낸다.
contentPane.setBackground(Color.ORANGE); // 컨텐트팬의 배경색을 오렌지색으로 설정
contentPane.setLayout(new FlowLayout()); // 컨텐트팬에 FlowLayout 배치관리자 달기
contentPane.add(new JButton("OK")); // 확인 버튼 달기
contentPane.add(new JButton("Cancel")); // 취소 버튼 달기
contentPane.add(new JButton("Ignore")); // 무시 버튼 달기
setSize(300, 150); // 프레임 크기 300x150 설정
setVisible(true); // 화면에 프레임 출력
}
public static void main(String[] args) {
new ContentPaneEx();
}
}
실행 결과]
'프로그램언어 > 자바' 카테고리의 다른 글
GUI문제1 (0) | 2020.11.02 |
---|---|
컨테이너와 배치 (0) | 2020.11.02 |
jsp파일에서 다음 주소검색창 열기 (0) | 2020.10.18 |
톰켓8.5에서 mysql연동하기 (0) | 2020.10.04 |
2차원배열에 대문자를 입력하고 소문자로 출력하기 (0) | 2020.09.29 |