[Java 17-10 PanelApp] Panel : 컴퍼넌트를 부착하여 그룹화 처리하기 위한 컨테이너

임승현·2022년 10월 19일

Java

목록 보기
91/126
package xyz.itwill.awt;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Color;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Panel;
import java.awt.TextArea;
import java.awt.TextField;

//Panel : 컴퍼넌트를 부착하여 그룹화 처리하기 위한 컨테이너 
//→ 독립적으로 사용 불가능하며 다른 컨테이너에 부착하여 사용
public class PanelApp extends Frame {
	private static final long serialVersionUID = 1L;

	public PanelApp(String title) {
		super(title);
		
		Button red=new Button("RED");
		Button green=new Button("GREEN");
		Button blue=new Button("BLUE");
		
		//TextField : 한줄의 문자열을 입력받기 컴퍼넌트
		TextField field=new TextField();
		
		//TextArea : 여러줄의 문자열을 입력받기 컴퍼넌트
		TextArea area=new TextArea();
		
		Panel panel=new Panel();
		
		//Panel의 기본 배치관리자 : FlowLayout 
		panel.add(red);//패널에 컴퍼넌트 부착
		panel.add(green);
		panel.add(blue);
		
		add(panel, BorderLayout.NORTH);//패널을 프레임의 북쪽위치에 부착
		add(area, BorderLayout.CENTER);//텍스트 영역을 프레임의 중앙위치에 부착
		add(field, BorderLayout.SOUTH);//텍스트 필드을 프레임의 남쪽위치에 부착

		//Component.setFont(Font f) : 컴퍼넌트의 글자 관련 속성을 변경하는 메소드
		//Font(String name, int style, int size) : 글자의 글꼴, 스타일, 크기를 전달받아 
		//글자 관련 속성을 저장한 객체를 생성하기 위한 생성자
		//→ 글꼴과 스타일은 Font 클래스에서 제공하는 상수필드 사용
		//→ 컨테이너에 적용된 디자인은 컴퍼넌트에 그대로 상속되어 적용
		panel.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 16));
		area.setFont(new Font(Font.SANS_SERIF, Font.PLAIN, 20));
		field.setFont(new Font(Font.SANS_SERIF, Font.BOLD+Font.ITALIC, 16));
		
		//Component.setForeground(Color c) : 컴퍼넌트의 글자색을 변경하는 메소드
		//Color(int red, int green, int blue) : 빛의 3원소를 전달받아 색을 저장하기
        위한 객체를 생성하는 생성자
		red.setForeground(new Color(255, 0, 0));
		green.setForeground(new Color(0, 255, 0));
		blue.setForeground(new Color(0, 0, 255));
		
		//Component.setBackground(Color c) : 컴퍼넌트의 배경색을 변경하는 메소드
		//→ Color 객체는 Color 클래스의 상수필드를 사용하여 설정 가능
		panel.setBackground(Color.GRAY);
		
		//Component.setEnabled(boolean b) : 컴퍼넌트의 활성화 상태여부를 설정하는 메소드
		//TextComponent.setEditable(boolean b) : 텍스트 컴퍼넌트의 입력값 변경여부를
        설정하는 메소드
		//TextComponent.setFocusable(boolean b) : 텍스트 컴퍼넌트의 입력촛점의 위치
        여부를 설정하는 메소드
		//→ false : 입력촛점 미위치 ,true : 입력촛점 위치(기본)
		area.setFocusable(false);
		
		setBounds(600, 100, 300, 400);
		setVisible(true);
	}
	
	public static void main(String[] args) {
		new PanelApp("Panel");
	}
}

0개의 댓글