GridLayout(격자레이아웃)

  • 행과 열로 구성된 레이아웃.
  • 배치되는 모든 컴포넌트의 크기가 일정.
  • 윈도우의 크기가 변경되면, 컴포넌트의 크기가 변경.
  • 각 영역에는 하나의 컴포넌트만 배치.
  • 배치는 왼쪽에서 오른쪽으로 순차적으로 배치.
  • GridLayout에 설정한 개수와 배치되는 컴포넌트의 개수가 맞지 않으면 JVM이 알아서 배치 행과 열을 변경.

문법

1. 배치관리자 생성) - 행과 열을 설정하여 생성
GridLayout gl = new GridLayout(,);

2. 배치관리자를 설정
setLayout(gl);

* 생성과 설정을 한번에
setLayout(new GridLayout(,));

3. 배치
add(컴포넌트);

CardLayout

Container Component에만 적용할 수 있는 Layout.
한정적인 공간을 효율적으로 사용.
여러 개의 패널을 준비해두고, 이벤트가 발생한 패널 하나만 보여주는 레이아웃.

GridBagLayout

행과 열로 구성된 레이아웃.
행마다 높이가 다르고, 행마다 배치하는 컴포넌트의 수가 다를 때 사용하는 Layout

복합 레이아웃

여러 개의 레이아웃을 결합하여 사용.


수동배치

배치관리자를 사용하지 않고, 개발자가 컴포넌트의 크기와 배치위치를 직접 설정하는 배치방법

  • 장점 :
    세밀한 디자인 가능.

문법

1. 배치관리자 해제
setLayout(null);

2. 컴포넌트 생성
JButton jbtn = new JButton("버튼이름");

3. 컴포넌트의 크기 설정
jbtn.setSize(넓이, 높이);

4. 컴포넌트의 배치 위치 설정
jbtn.setLocation(x좌표, y좌표);

5. 배치
add(컴포넌트);


Icon interface(이미지 다루기)

Icon interface를 매개변수로 사용. 모든 컴포넌트는 이미지를 넣어서 보여줄 수 있다.

문법

1. ImageIcon생성
ImageIcon ii = new ImageIcon("이미지의 절대 경로");

2. 컴포넌트에 설정
* 생성자 사용.
컴포넌트 객체명 = new 컴포넌트();

* method 사용
객체명.setIcon();

JScrollPane

Container Component(JPanel, JScrollPane)
스크롤 바가 필요한 컴포넌트에 스크롤 바를 붙여줄 때 사용

문법

1. 스크롤바가 필요한 컴포넌트 생성
JTextArea jta = new JTextArea();

2. ScrollBar가 필요한 객체와 has a관계로 JScrollPane을 생성.
JScrollPane jsp = new JScrollPane(스크롤 바가 필요한 객체)

Font 변경

컴포넌트의 글꼴, 스타일, 크기를 변경할 때 사용하는 컴포넌트
Non-Visual Component
java.awt패키지에서 제공

문법

1. Font class 생성
Font font = new Font(글꼴, 스타일, 크기);

 모든 글꼴 사용가능.
Font클래스에서 제공하는 constant 사용.
Font.PLAIN - 일반글꼴
Font.BOLD - 진하게
Font.ITALIC - 이탤릭 체
Font.BOLD | Font.ITALIC - 진하게 이탤릭

2. 컴포넌트 생성.
컴포넌트 객체명 = new 컴포넌트();

3. Font 설정
객체명.setFont(글꼴객체);

색 변경

java.awt.Color 클래스 사용
Foreground color(전경색, 글자색), Background color(바닥색)

1. Constant 사용
객체명.setForeground(Color.상수명);
jbtn.setForeground(Color.BLUE);

2. 생성자 사용
- color 클래스 사용
Color color = new Color(int); //RGB 0x000000 ~ 0xFFFFFF

- 컴포넌트에 설정
컴포넌트명.setForeground(c);

-바닥색
컴포넌트명.setBackground(Color클래스 객체);//new Color(int)
컴포넌트명.setBackground(Constant);//Color.BLUE

0개의 댓글