java

쉽지만 어려운 #Java #자바 #성공적 6.Swing(GUI)

sieunju 2016. 5. 8. 01:10
반응형

안녕하세요 j.sieun 입니다. 

이번시간에 배우실 내용은 재밌는 스윙 즉, UI기능에 대해 알아보도록 하겠습니다. 

GUI란 Graphic User Interface 의 약자로 기존에 텍스트 모드 프로그램을 윈도우 프로그램처럼 나타내는 형식입니다. 

이기능으로 여러가지 프로그램을 만들고 간단한 플래시 게임, 그림판도 만들수 있는 무한한 가능성을 가진 기능입니다. 

이기능은 내용이 많아서 2부로 적겠습니다. 


윈도우의 구성요소로 기본적으로 아래 그림으로 되어있습니다. 



전체적인 바탕화면인 프레임, 제목을 입력하는 타이틀바, 그리고 그안에서 여러가지를 적을수 있는 content pane 이 있습니다. 


그렇다면 우선 전체적인 바탕화면을 생성하는 방법을 보여드리겠습니다. 


JFrame frame =  new JFrame(); 

여기서 타이틀바를 입력하고싶다. 그러면


JFrame frame = new JFrame("hello GUI:");

또한, 라벨을 만드는 방법은

JLabel label = new JLabel("Hello Java");

/*추가적으로 라벨말고도 button, selectBox 등등 여러가지가 있습니다. 생성하는 형식은 저것과 똑같습니다. 앞에 JButton 이런형식으로

적으면됩니다. */

프레임에 종속된 content pane을 가져오는 방법은

Container contentPane = new frame.getContentPane();

여기서 밑줄친 부분은 content Pane 을 리턴하는 메소드(함수)입니다. 

content pane 위에 라벨을 올려놓는 방법은 

contentPane.add(label);


그리고 이것들을 이제 창위에 보여줄려면

frame.setVisible(true);

여기에 또한 몇가지 메소드가 있습니다. 화면에 위치를 설정할려면

frame.setLocation(X,Y); 

물론 X와 Y값은 좌표입니다. 

크기를 설정할려면

frame.setSize(X,Y);

입니다. 


아 추가적으로 라벨또는 버튼 셀렉 박스 등등. 위치를 설정하는 방법은

JLabel label = new JLabel("Hello Java", SwingConstants.CENTER);


다른 방법도 있긴한데 기본적으로 저렇습니다. 많이 시도하고 하다보면 자기가 원하는 위치에 설정해 놓을수가 있습니다. 


GUI를 만들어 놓고 디버그 하고나서 꺼야 하는데 그떄 닫기(X) 버튼을 누르면 닫히지가 않습니다. 그럴땐


frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

가 되겠습니다. 

그럼 기본적인 스윙 예제를 보도록 하겠습니다 


import java.awt.Color;

import java.awt.Container;

import java.awt.Dimension;

import java.awt.Toolkit;


import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.SwingConstants;



public class GUIClass extends JFrame {

public GUIClass(){

super("Hello Java");

getContentPane().setBackground(Color.white);

}

Container container = getContentPane();

public void init()

{

Toolkit kit = getToolkit();

Dimension dmen = kit.getScreenSize();

// TODO Auto-generated method stub

setSize(300,200);

JLabel label = new JLabel("Hello GUI", SwingConstants.CENTER);

container.add(label);

setLocation((int)((dmen.width - getSize().width)/2), (int)((dmen.height - getSize().height))/2);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setVisible(true);

}

public static void main(String[] args) {

GUIClass test = new GUIClass();

test.init();

}




}



결과 화면 



setLocation((int)((dmen.width - getSize().width)/2), (int)((dmen.height - getSize().height))/2);

이 소스는 꿀팁이긴한데 어떠한 크기의 모니터 크기가 되었든 무조건 정중앙에 나타내는 소스입니다. 숙지하시면 나중에 


두고두고 사용될 소스입니다. 


다음번에는 좀더 고급스러운 GUI에 대해 배워보도록 하겠습니다. 


감사합니다. 


※궁금하신거 댓글달아주시길 바랍니다. ㅎㅎ


퍼가시는건 상관 없는데 말은 하고 퍼가주시길 바랍니다.^^※







반응형