<Java> 14. Swing의 기본 구성, 특징

정지민·2023년 11월 9일

Java

목록 보기
9/12

GUI 프로그래밍

그래픽을 이용하여 사용자에게 이해하기 쉽고 사용하기 쉬운 입출력 인터페이스 제공

  • 메세지 기반
  • 이벤트 기반

Swing 클래스

클래스 이름 보통 'J'로 시작

컨테이너 컴포넌트

  • 다른 컴포넌트, 컨테이너를 포함할 수 있음
  • 독립적으로 존재 가능
  • ex) 최상위(JFrame, JDialog), JPanel

컴포넌트

  • 특정 기능 수행하는 하나의 객체
  • 컨테이너에 포함되어 있어야 함
  • 다른 컴포넌트 포함할 수 없는 종단 컴포넌트
  • ex) JLabel, JButton, JTextField, JTextArea 등...

-> 최상위 컨테이너를 바닥에 깔고, 그 위에 컨테이너를 놓고, 다시 컴포넌트를 쌓는 방식

JFrame 클래스

프레임 객체 생성 : import javax.swing.JFrame;
보통 하나의 프레임(JFrame) 존재
일반적인 윈도우 생성

setLocation() - 위치
setSize() - 크기
setBounds() //두개 합침
setVisible() - 윈도우 화면에 표시

setKefaultCloseOperation(JFrame.EXIT_ON_CLOSE) - 프레임 바로 종료

main()의 기능 : 시작점으로서의 기능(최소화)

프레임 생성 방법 1

클래스에서 JFrame 객체를 생성

public class JFrameEx{
	JFrame frame;

프레임 생성 방법 2

JFrame으로부터 상속받아 사용

public class JFrameEx extends JFrame{
}

배치관리자

setTitle() - 타이틀 달기

기본배치관리자

  • JFrame, JDialog : BorderLayout
  • JPanel, JApplet : FlowLayout

종류

  • FlowLayout : 상단 중앙부터, 수평우선(좌->우) 배치
  • BorderLayout : 5개 영역으로 분할하여 배치 (CENTER, NORTH, SOUTH, WESR, EAST)
  • GridLayout : 일정한 크기의 격자 모양으로 나눠 배치
  • CardLayout : 어느 한순간에 하나의 컴포넌트만 표시

JPanel 클래스

컴포넌트를 그룹별로 묶어서 처리할때 사용
패널을 다른 패널에 붙일 수 있음

배치 관리자의 적용

  1. Container 클래스의 setLayout() 메서드 인자로 지정

    • JPanel 객체 p에 적용
      p.setLayout(new FlowLayout(FlowLayout.LEFT));
      p.setLayout(new BorderLayout());
  1. 일부 컨테이너에 적용 : 객체 생성시 생성자의 인수로 배치관리자 객체 제공
    JPanel p = new JPanel(new FlowLayout(FlowLayout.LEFT));
    JPanel p = new JPanel(new BorderLayout());

배치관리자가 없는 컨테이너

컴포넌트의 크기와 위치를 직접 지정 (setSize, setLocation, setBounds)
배치관리자 객체 지정 대신 null 지정

0개의 댓글