JAVA

그래픽을 활용한 자바 : GUI 창 위치와 크기 설정하기

우아개발자 2023. 10. 26.

그래픽을 활용한 자바 : GUI 창 위치와 크기 설정하려면 입력 값을 어떻게 해야 할까요? 천천히 작성해 보도록 하겠습니다. GUI는 Grahic User Interface의 줄임말로 사용자가 마우스나 키보드를 이용하여 편리하게 입력하고 출력할 수 있도록 그래픽으로 화면이 구성된 인터페이스를 말하는데요.

 

JFrame-thumbnail

JAVA에서 지원해 주는 GUI 폴더라고 함은 자바 1.1 구버전 기준 Java.awt으로, 최신 버전은 Java.swing이라고 말할 수 있겠네요.  저는 이 글에서는 java.swing에 대한 내용을 더욱 많이 다룰 예정이니 참고해 주시길 바랍니다.

GUI 시작하기 전에  import java.swing *을 설정

package GUI;

import javax.swing.*;

public class GUIMain {

 

저는 값을 입력하기 전에 import javax.swing.*; 을 입력함으로써, "java에서 지원하는 swing이라는 폴더의 '모든 지원'을 다 받을게"라는 의미로 사용할 수 있는데요.

 

현재는 창의 위치와 크기만 설정해 줄 것이기 때문에 사실 모든 폴더를 받을 필요는 없지만, 대부분의 개발을 하시는 분들이라면, 수기로 입력하기 귀찮거나 혹은 지저분한 코드 형식이 보기 싫어서 이렇게들 입력을 한다고 합니다. 그러니 여러분들도, 지저분한 코드 형식이 싫으시다면 위와 같이 작성해 주는 편이 좋겠네요.

 

GUI JFrame 창을 생성하고 창의 위치와 크기 조절하기 

그렇게 메인으로 돌아가서, 창의 위치와 크기를 조절하려면, JFrame의 객체를 만들어줄 텐데요. 다시 main으로 돌아가서 객체를 생성해 줍니다.

 

JFrame win = new JFrame ("제목창 title이 생성");

 

 

다만 이렇게 작성만으로는, F11 (실행) 창을 눌려도 아무런 반응이 없을 텐데요. 그 이유는 우리가 '창'이라는 객체만 생성해 놨기 때문입니다. 그러니 우리가 만든 객체의 크기와 위치 그리고 "윈도우"창에 직접 보일 수 있는 명령어를 입력해야 하는 것입니다. 아래와 같이 말이죠. 

 

* win 은 제가 임의로 만든 변수로서, 다른 변수를 사용해도 무방합니다.

win.setLocation(300, 300); //창의 위치를 설정해주는 값
win.setSize(400, 400); //창의 크기를 설정해주는 값

 

그런데 사실 이렇게 설정을 하게 된다면, 코드가 길어지고 많아지겠죠? 실무에 계신 개발자분들께서는 대부분 이런 이야기를 하신다고는 합니다. "코드를 직접 짜서 만드는 것은 좋지만, 저장할 수 있는 공간과 메모리 값을 생각하면서 코드를 만들지 않으면 안 된다"라고요. 그러니 우리는 한 줄로 줄이는 방법을 선택해 볼게요. setBounds를 이용해서 말이죠.

 

win.setBounds(300, 300, 400, 400); //win.setBounds(x, y,  width, height);

 

setBounds를 이용한다면, setLocation의 값과 setSize의 값으로 설정하지 않아도, 한 줄의 코드만으로 위치와 크기를 지정할 수 있으니 더욱더 간단해지네요.

GUI JFrame 창이 보이지 않을 때와 종료하는 기본 값 설정하기

java-title

아마 이렇게까지만 작성했더라면, 여러분들의 자바 프로그램에서는, 위와 같은 객체가 생성되었을 겁니다. 하지만 위와 같이 코드를 실행시켜도 아직까지 창이 보이지 않죠? 그 이유는 창의 객체 그리고 위치와 크기는 설정했지만 우리가 실제로 볼 수 있도록 코드를 입력하지 않아서인데요. 이 문제는 간단한 기본값으로 해결할 수 있습니다. 

 

win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //엑스 누르면 완전 종료!
win.setVisible(true); //윈도우창 보이기

 

이 두 가지의 명령어들은 자바 Fream을 사용할 때 기본적으로 입력해야 하는 값들이라고 보시면 될 텐데요. 첫 번째 줄에 나타나있는 것은, 우리가 위 사진에서 엑스표시를 클릭할 때 종료시킬 수 있는 명령어이며,

두 번째 명령어의 경우에는 우리의 위의 사진의 창이 보일 수 있게 하는 명령어입니다.

 

코드 정리

아래의 코드의 임의값을 바꿔서 사용해 보세요.

package GUI;

import javax.swing.JFrame;

public class GUIMain {

	public static void main(String[] args) {

		JFrame win = new JFrame

		win.setBounds(300, 300, 400, 400);
		
		

		win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		win.setVisible(true);
        
     }
 }

 

댓글