티스토리 뷰

실행시킬 메인 클래스

package main;

import java.awt.Frame;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

public class Main {

	public static void main(String[] args) {
		// TODO 창이 화면의 정중앙에 오도록 하기!(해상도크기와 상관없이)
		new Control().init();
	}

}

 

컨트롤 클래스

2가지 방법으로 해봄

1st : (스크린창 - 프레임창)/2 이용

2nd : JFrame 사용 setLocationRelativeTo(null); 메서드 이용

package main;

import java.awt.BorderLayout; //2nd 방법
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.Toolkit;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

import javax.swing.JFrame; // 2nd 방법
import javax.swing.JLabel;

public class Control {

	public void init() {
		Dimension scr = Toolkit.getDefaultToolkit().getScreenSize(); 
//		System.out.println(scr.width+":"+scr.height); //해상도 보여주기
		Frame frame = new Frame("1st AWT");
		frame.setSize(200,200); //프레임창 크기 정하기
		Dimension frameSize=frame.getSize();//프레임창 크기를 디멘션으로
//1st 방법 모니터와 자바 프레임 길이를 뺀 뒤 1/2하는 방법
		frame.setLocation((scr.width-frameSize.width)/2,(scr.height-frameSize.height)/2); //프레임창 위치 정하기
		frame.setResizable(false); //?
		setLayout(frame);//밑에서 메소드로 가져옴
		frame.setVisible(true);

//2nd 방법 java.awt.Window에 있는 setLocationRelativeTo 메서드 활용		
		JFrame frame2 = new JFrame();
		frame2.setSize(300,300);
		//프레임 위치 설정
		frame2.setLocationRelativeTo(null);
		//레이블 생성
		JLabel label = new JLabel("2nd 방법",JLabel.CENTER);
		//레이블을 프레임에 추가
		frame2.add(label, BorderLayout.CENTER);
		frame2.setVisible(true);
	}
	private void setLayout(Frame frame) {
		frame.addWindowListener(new WindowListener() {//밑에는 ctrl+스페이스바 자동생성
			
			@Override
			public void windowOpened(WindowEvent e) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void windowIconified(WindowEvent e) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void windowDeiconified(WindowEvent e) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void windowDeactivated(WindowEvent e) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void windowClosing(WindowEvent e) {
				// TODO Closed말고 여기에 창닫기 표시
				System.exit(0);
				
			}
			
			@Override
			public void windowClosed(WindowEvent e) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void windowActivated(WindowEvent e) {
				// TODO Auto-generated method stub
				
			}
		});
			
		}
	}

'JAVA' 카테고리의 다른 글

랜덤으로 공 튀기기_AWT  (0) 2020.09.03
GoldenGoose_멀티스레드 연습  (0) 2020.09.03
Sep1_ Runnable  (0) 2020.09.01
파일저장_Stream  (0) 2020.08.31
상속_오버라이딩, Final, 다형성, 추상클래스, 추상메소드  (0) 2020.08.18
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함