본문 바로가기
IT/자바

JFrame 예제 4개

by 독서실총무J 2017. 5. 31.
반응형

5월 마지막 날이다

시간은 정말 빠르게 흐르는것 같다


그리고 계절은 순식간에 바뀐다

엊그제만 해도 추워서 떨었는데

이제는 더워서 반바지까지

꺼내입고 돌아다닌다


가끔 느끼는건데

봄과 가을이 사라지지 않았나 싶다


우리나라는 사계절이 뚜렷한게

그나마 있는 장점이었지만

이제는 그마저도 없어진듯 하다


더위를 정말 많이 타는 편인데

체력 늘리기라도 시작해야겠다


운동은 내일부터 하기로 하고

오늘도 복습을 하자

이번엔 JFrame이다


/*
	GUI
		- AWT
			장점 : 쉽다.
			단점 : 구성요소 적다.(표현에 한계가 있음)
				   플랫폼(O/S)에 의존적	

		- Swing (Android와 유사)
			장점 : 구성요소가 많다.(표현에 한계가 거의 없음)
				   플랫폼(O/S)에 독립적				
			단점 : 어렵다.
*/
import javax.swing.*;
class JFrameEx1 {
	public static void main(String[] args) {
		JFrame f = new JFrame();
		
		// 크기 설정(가로, 세로)
		f.setSize(400, 300);

		// 위치 설정(x, y)
		f.setLocation(400, 300);

		/*
			- 기본 창닫기 옵션
			JFrame.HIDE_ON_CLOSE(기본값)
				-> 가시성 제거
			JFrame.EXIT_ON_CLOSE
				-> 프로그램 종료
			JFrame.DISPOSE_ON_CLOSE
				-> 해당창의 종료
			JFrame.DO_NOTHING_ON_CLOSE
				-> 아무것도 하지마라
		*/
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		// 가시성 추가
		f.setVisible(true);
		
	}
}


그냥 화면에 보이는걸 

코드로 짠다고 생각하면 된다


교육을 들을때 보통 프로그래머들이

맡는 영역은 아니라고 하는데


그래도 배워두면 유용하게

써먹을수 있으니 잘 알아들으라던

기억이 떠오른다


사실 공부하면서 가장 재미있는 분야였다

손으로 친게 눈으로 나오니 말이다


정의와 창닫기 옵션에 대한 주석을

통해 설명을 이해하길 바란다


import javax.swing.*; class JFrameEx2 { public static void main(String[] args) { JFrame f1 = new JFrame(); f1.setSize(200, 200); f1.setLocation(100, 100); f1.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); f1.setVisible(true); JFrame f2 = new JFrame(); f2.setSize(300, 300); f2.setLocation(300, 300); f2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f2.setVisible(true); } }


f1 객체 메소드를 차례로 보자

첫번째는 창의 사이즈를

두번째는 창의 위치를

세번째는 기본 창 종료 옵션을

네번째는 화면에 보일것인지를

선택하는 것이 되겠다


파라미터로 들어가는

기능이나 숫자를 조절해보자


그럼 어떤것이 어떤 역할을

하는지 바로 이해할수 있어 좋다


아까도 말했듯이 JFrame을 배울 때

가장 좋은점은 눈으로 바로 확인이 

가능 하다는 것이다


import java.awt.Dimension;
import java.awt.Point;
import java.awt.Frame;
import javax.swing.JFrame;
class JFrameEx3 {
	public static void main(String[] args) {
		// Swing
		JFrame f = new JFrame();
		f.setLocation(new Point(200, 200));
		f.setSize(new Dimension(300, 300));
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		// AWT
		Frame awt = new Frame();
		awt.setLocation(400, 400);
		awt.setSize(300, 300);


		f.setVisible(true);
		awt.setVisible(true);
	}
}


Dimension에 관한 예제이다 

단순하게 생각하자


그냥 위치와 사이즈를

하나로 통합해서 나타내는 것이다


import java.awt.Dimension; import java.awt.Point; import java.awt.Rectangle; import javax.swing.JFrame; class JFrameEx4 { public static void main(String[] args) { /* 다음과 같은 창(JFrame)을 만드시오 - 크기 : 500, 400 - 위치 : 200, 200 - 종료클릭 : 현재창만 제거 */ JFrame f = new JFrame(); /* f.setSize(500, 400); f.setLocation(200, 200); */ // 한꺼번에 설정하기 : x, y, 가로, 세로 f.setBounds( new Rectangle( new Point(200, 200), new Dimension(500, 400) ) ); // f.setBounds(new Rectangle(200, 200, 500, 400)); // f.setBounds(200, 200, 500, 400); f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); f.setVisible(true); // Value Object(V.O) Dimension size = f.getSize(); System.out.println(size.width); System.out.println(size.height); Point location = f.getLocation(); System.out.println(location.x); System.out.println(location.y); Rectangle bounds = f.getBounds(); System.out.println(bounds.width); System.out.println(bounds.height); System.out.println(bounds.x); System.out.println(bounds.y); } }


마지막은 실습으로 했던것이다

여태까지 배운것을 써먹는것이므로

크게 설명할것은 없다고 본다


예제 4개 모두 복붙이 가능하므로

직접 쳐보거나 붙여 넣어서 

실행해보고 정확한 기능에 대해 알아두자


블로그에 글을 쓴지도 한달 정도 되었다

시간이 정말 빨리 간다

그만큼 늙어간다

시간이 가지 않았으면 좋겠다


다음에는 남은 예제에 대해 복습할것이다

반응형

'IT > 자바' 카테고리의 다른 글

JFrame 세번째  (0) 2017.06.04
StringBuffer와 JFrame 나머지 예제들  (0) 2017.06.02
자바 과제 복습  (0) 2017.05.30
String 문자열에 관한 고찰  (0) 2017.05.29
Exception 나머지 예제와 throws  (0) 2017.05.28

댓글