알버트의 개발하는 블로그
자바 제23강 : 자바 Dimension 클래스로 윈도우창 조절하기 (디멘션) 본문
이번 시간에는 자바에서 제공하는 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 클래스로 만든 객체는 윈도우창의 사이즈를 받아올 수 있고 모니터의 해상도를 받아올 수 있답니다. 읽어주셔서 감사합니다~
'프로그래밍 언어 > Java' 카테고리의 다른 글
자바 제25강 : 자바 GridLayout클래스 이용하여 바둑판 윈도우창 생성하기 (0) | 2021.09.13 |
---|---|
자바 제24강 : 자바 윈도우창과 버튼 만들고 ActionListener 클래스 구현해보기 (0) | 2021.09.10 |
자바 제22강 : 자바 JFrame 클래스로 기본 윈도우창 만들기 (제이프레임) (0) | 2021.09.10 |
자바 제21강 : 자바 Frame 클래스로 기본 윈도우창 만들기 (프레임) (0) | 2021.09.10 |
자바 제20강 : 자바 스레드 동기화 (Thread synchronization) (0) | 2021.09.10 |