알버트의 개발하는 블로그

자바 제23강 : 자바 Dimension 클래스로 윈도우창 조절하기 (디멘션) 본문

프로그래밍 언어/Java

자바 제23강 : 자바 Dimension 클래스로 윈도우창 조절하기 (디멘션)

알버트 2021. 9. 10. 10:32

 

이번 시간에는 자바에서 제공하는 Dimension 클래스에 대해서 알아보겠습니다.

Dimension 클래스는 모니터 해상도를 기억하거나 윈도우의 크기에 대한 작업을 할 경우 사용되어집니다. 모니터 해상도를 얻어와서 Dimension 클래스의 객체에 저장할 수 있는데요. 그 중에 Toolkit 클래스는 모니터 해상도 또는 디스크에 저장된 이미지 파일을 읽어올 때 사용됩니다.

dimen = Toolkit.getDefaultToolkit().getScreenSize();   //모니터 해상도를 얻어오는 명령
dimen2 = getSize();           //윈도우 사이즈를 받아오는 명령

소스 코드는 대표적으로 이 2가지 방법으로 사용되어 집니다.

바로 간단한 예제를 통해서 Dimension 클래스를 사용해보겠습니다.

 

 

 


Dimension 클래스 예제

package kr.koreait.windowTest;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.Toolkit;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Random;

public class WindowTest6 extends Frame {

//	모니터 해상도나 윈도우 사이즈를 받아오는 디멘션 클래스 객체를 생성해준다.
	Dimension dimen, dimen2;
	
	public WindowTest6() {	//기본 생성자로 프레임 생성
		this("제목 없는 윈도우");
	}
	
	public WindowTest6(String title) {	//제목을 인수로 받아오는 생성자 생성
		
		setTitle(title);
		setBounds(800, 100, 400, 300);		//윈도우창 크기와 위치 조절
		
		//윈도우창의 크기는 랜덤으로 설정
		setBackground(new Color(new Random().nextInt(16777215)));	

//		디멘션객체에 모니터 해상도를 받아온다.
		dimen = Toolkit.getDefaultToolkit().getScreenSize();
		
//		디멘션객체에 윈도우창의 사이즈를 받아온다.
		dimen2 = getSize();
//		윈도우 크기 출력해보기
		System.out.println("윈도우 크기 : " + dimen2.width + " * " + dimen2.height);
		
//		모니터 해상도에 관계 없이 프로그램이 시작되면 윈도우를 화면 정 가운데에 표시한다.
		int xpos = dimen.width / 2 - dimen2.width / 2;
		int ypos = dimen.height / 2 - dimen2.height / 2;
//		윈도우창의 위치를 설정해준다.
		setLocation(xpos, ypos);
//		윈도우창 닫기 이벤트 생성
		addWindowListener(new WindowAdapter() {
			@Override
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
		setVisible(true);
	}
	
	public static void main(String[] args) {
		
		WindowTest6 window = new WindowTest6();	//메인메소드에서 기본생성자로 실행
	}
	
}

 

코드는 이와 같습니다. 주석으로 코드에 대한 설명을 해놓았습니다. 한번 바로 실행해보도록 하겠습니다.

 

 

실행결과는 이와 같습니다. "제목 없는 윈도우"라는 이름으로 모니터의 한 가운데에 윈도우창이 생성되었습니다. 그리고 윈도우 크기를 출력해주는 print문도 정상적으로 출력된 것을 알 수 있습니다. 이처럼 Dimension 클래스로 만든 객체는 윈도우창의 사이즈를 받아올 수 있고 모니터의 해상도를 받아올 수 있답니다. 읽어주셔서 감사합니다~