본문 바로가기
IT/Java

자바 AWT 컴포넌트 배치하는 방법

by flatsun 2019. 8. 2.
반응형

저번 글에서는 자바 AWT로 화면 띄워보는 방법에 대해서 해봤는데

 

이번에는 AWT로 컴포넌트를 배치하는 방법에 대해 알아본다

근데 컴포넌트(Component) 란?

 

버튼(Button),

라벨(Label),

체크박스(Checkbox),

라디오(CheckboxGroup),

콤보박스(Choice),

텍스트에어리어(TextArea),

텍스트 필드(TextField)와

 

같은 것들을 컴포넌트라고 한다

 

이제 컴포넌트를 배치하는 방법에 대해 알아보자

 

방법은

1. 프레임을 만든다

2. 컴포넌트를 만든다

3. 프레임에 컴포넌트를 붙인다

 

이 순서인데

정말 간단하니

한번 차례대로 따라해 보자

 

1번인 프레임을 만드는 방법은

 

Frame f = new Frame();

으로 프레임을 만들고

setTitle로 실행 시 프레임명을 정해주고

setBounds로 위치와 크기를 지정해 준다

이후 setVisible(true)를 줘서

 

실제 출력 시 프레임이 보이게 하고

 

마지막으로 레이아웃을 설정해 주면 되는데

레이아웃에는 여러 종류가 있지만

 

난 null줘서 수동으로 설정하는게 낫더라

 

레이아웃 종류는 아래 포스팅에 잘 설명이 되어 있으니 참고하면 될 것 같다

 

03-AWT & Swing:[AWT]Layout

[[목차]]1.Layout이란?2.BorderLayout3.FlowLayout4.GridLayout5.GridbagLayout6.AbsoluteLayou...

blog.naver.com

 

그리고 레이아웃을 설정해 주지 않으면 

 

이런 식으로 출력이 되니

레이아웃을 꼭 사용해 줘야 한다

 

이후 프레임이 잘 출력이 되는 것이 보이니

 

이번에는 2번, 3번인 컴포넌트를 만들고 프레임에 붙여 보자

 

컴포넌트는 위에 설명한 것 처럼 여러 종류가 있지만

일단은 버튼부터 만들어 보고 차례대로 만들어 본다

 

Button btn = new Button("버튼"); 로 버튼명과 함께 버튼을 생성한 후 

btn.setBounds를 통해 버튼의 위치와 크기를 설정하고

프레임.add(버튼명); 으로 버튼을 붙여주면

 

출력 시

 

버튼이 잘 출력된 것이 보인다

 

다음으로는 다른 컴포넌트들도 한번 쭉 출력해 보자

캡쳐하기에는 너무 커서

 

소스를 통째로 옮겨놨는데

package db;

import java.awt.Button;
import java.awt.Checkbox;
import java.awt.CheckboxGroup;
import java.awt.Choice;
import java.awt.Frame;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextArea;
import java.awt.TextField;

import javax.swing.plaf.basic.BasicBorders.RadioButtonBorder;

public class FrameTest {
	public static void main(String[] args) {
		
		Frame f = new Frame();		
		
		// 프레임 셋팅
		f.setTitle("TEST");
		f.setBounds(100, 100, 500, 500);
		f.setVisible(true);				
		
		// 프레임의 레이아웃 설정
		f.setLayout(null);		
		
		// 컴포넌트 생성
		Button btn = new Button("버튼"); 
		Label lbl = new Label("라벨");
		Checkbox chkbox = new Checkbox("체크박스");
		CheckboxGroup chkGroup = new CheckboxGroup(); // 라디오
		Checkbox chk1 = new Checkbox("A", chkGroup, false); // 라디오 A값 추가
		Checkbox chk2 = new Checkbox("B", chkGroup, false); // 라디오 B값 추가
		Checkbox chk3 = new Checkbox("C", chkGroup, true); // 라디오 C값 추가, true는 최초 선택값
		Choice cho = new Choice(); // 콤보박스
		cho.addItem("1번 선택지"); // 콤보박스 추가
		cho.addItem("2번 선택지"); // 콤보박스 추가
		cho.addItem("3번 선택지"); // 콤보박스 추가
		TextArea txtarea = new TextArea("Textarea"); // Textarea (텍스트 여러줄 들어가는.. 메모장 생각)
		TextField txtfield = new TextField("textfield"); // Textfield (텍스트 한줄)

		// 컴포넌트 위치, 크기 설정
		btn.setBounds(50, 50, 50, 50);
		lbl.setBounds(150, 50, 50, 50);
		chkbox.setBounds(200, 50, 100, 50);
		chk1.setBounds(50, 100, 50, 50);
		chk2.setBounds(100, 100, 50, 50);
		chk3.setBounds(150, 100, 50, 50);
		cho.setBounds(50, 150, 100, 50);
		txtarea.setBounds(50, 200, 200, 50);
		txtfield.setBounds(50, 250, 200, 25);
		
		// 프레임에 컴포넌트를 붙인다
		f.add(btn);
		f.add(lbl);
		f.add(chkbox);
		f.add(chk1); // 라디오의 경우에는 만들어준 체크박스 1,2,3을 모두 붙여야 함
		f.add(chk2);
		f.add(chk3);
		f.add(cho);
		f.add(txtarea);
		f.add(txtfield);
	}

}

다른 컴포넌트들도 처음 붙인 버튼과 그닥 다르지 않지만

유심히 봐야할 것은 라디오와 콤보박스인데

 

라디오의 경우에는 

CheckboxGroup을 먼저 만들어준 뒤

체크박스를 추가로 만들어

Checkbox chk1 = new CheckBox("A", CheckboxGroup명, 초기값);

식으로 라디오처럼 버튼을 추가하는 것이다

 

초기값은 false로 주면 선택 안한 효과

true로 주면 선택한 효과를 준다

 

그리고 콤보박스는

Choice를 통해 만드는데

 

choice명.addItem("값");

을 통해 선택지를 추가시킨다

 

이제 AWT에서 프레임을 만들고 컴포넌트를 배치하는 방법에 대해 알아봤으니

다음에는 Panel은 무엇이고 어떻게 사용하는지 한번 알아보자

반응형

댓글