반응형
자바 프레임을 모니터 중앙에 띄우는 방법은 여러가지가 있다.
이 중 가장 많이 알려져 있는 방법은 모니터와 자바 프레임의 길이를 뺀뒤 1/2하는 방법이다.
일단 밑의 코드를 보자.
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class test {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(300, 300);
// --------------------[프레임 위치 설정하는 코드]----------------------
// 프레임(자바 화면) 크기
Dimension frameSize = frame.getSize();
// 모니터 크기
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
// (모니터화면 가로 - 프레임화면 가로) / 2, (모니터화면 세로 - 프레임화면 세로) / 2
frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
// ----------------------------------------------------------------------
// 레이블 생성
JLabel label = new JLabel("안드로이드 아님. 자바임.", JLabel.CENTER);
// 레이블을 프레임에 추가
frame.add(label, BorderLayout.CENTER);
// 프레임 보이기
frame.setVisible(true);
}
}
잘 작동 하지만... 이 방법은 낭비가 심하다. 자바API를 찾아보면위 3줄짜리 코드는 더 쉽게 할수 있는게 있는데 그게 바로 java.awt.Window에 있는 setLocationRelativeTo 이라는 메서드다.
이를 이용하면 단 한줄로 대체가능하다.
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class test {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(300, 300);
// --------------------[프레임 위치 설정하는 코드]----------------------
frame.setLocationRelativeTo(null);
// ----------------------------------------------------------------------
// 레이블 생성
JLabel label = new JLabel("안드로이드 아님. 자바임.", JLabel.CENTER);
// 레이블을 프레임에 추가
frame.add(label, BorderLayout.CENTER);
// 프레임 보이기
frame.setVisible(true);
}
}
자바 api (https://docs.oracle.com/javase/7/docs/api/java/awt/Window.html#setLocationRelativeTo(java.awt.Component))를 이용해 보자.
반응형
'old > Programming' 카테고리의 다른 글
자바 프로그램 수행 시간 측정 하는 법 (성능 평가) (0) | 2017.03.17 |
---|---|
새 하드 장착법: 윈도우7 이상 (0) | 2017.01.07 |
인텔 CPU 6세대 스카이레이크에서 윈도우7 USB로 설치하는 법 (0) | 2017.01.06 |
드랍박스 SDK를 이클립스에 설치(import) 하기 (0) | 2016.09.12 |
이클립스 폰트(글꼴) 설정 (0) | 2016.07.31 |