노력과 삽질 퇴적물

JAVA: GUI 및 프레임 본문

프로그래밍note/언어. JAVA & JDK 계열

JAVA: GUI 및 프레임

MTG 2012. 8. 21. 12:40


* 아래의 예시소스들은 자바스윙을 기준으로 작성되었습니다.

* 자바 공식 API : http://docs.oracle.com/javase/7/docs/api/






01. 기본형태

 1. 자바 윈도우 생성

-> 다음의 예제는 swing으로 했으며 awt와는 거의 유사합니다.

 ① swing클래스를 객체 생성한 유형

 ②  포함에 의한 컨테이너 생성 유형.

//package GUI_exercise;

import javax.swing.JFrame;


public class BasisFrame

{

public BasisFrame()//생성자

{

}


public static void main(String [] arr)

{

JFrame frame = new JFrame();


frame.setTitle("자바 GUI프로그래밍");

frame.setSize(300, 400);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setVisible(true);//JFrame의 SWING의 스레드 시작.

   }

}

//package GUI_exercise;

import javax.swing.JFrame;


public class HasFrame extends JFrame

{

private JFrame frame;

public HasFrame()

{

frame = new JFrame("포함형 컨테이너");

frame.setSize(300, 400);

frame.setVisible(true);

}

public static void main(String[] args)

{

new HasFrame();

}

}

 ③ swing클래스를 상속받은 유형

//package GUI_exercise;

import javax.swing.JFrame;


public class ExtendsJFrame extends JFrame

{

public Basis()//생성자

{

super("확장형 컨테이너");

setSize(300, 400);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setVisible(true);//JFrame의 SWING의 스레드 시작.

}

public static void main(String [] arr)

{

ExtendsJFrame frame = new ExtendsJFrame();//JFrame자식클래스

// new ExtendsJFrame();//로도 가능

}

}

* JAVA가 객체지행 프로그램 언어인 만큼 앞으로의 설명&예시들은 책등의 예제와는 달리 가급적 상속시킨 코드로 진행됩니다.






02. 스윙 컴포넌트

 1. 자바 GUI 계층구조

[출처 : "강이"의 JAVA 강좌, 자바 스윙(Java Swing)]






 2. 스윙 컴포넌트 활용하기 예시

-> 참고로, 메인함수가 있는 소스파일에서 실행이 가능하다.

//SwingSampleMain.java


public class SwingSampleMain

{

public static void main(String[] message)

{

new SwingSample();

}

}

//SwingSample.java

import java.awt.BorderLayout;

import java.awt.FlowLayout;


import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JTextArea;

import javax.swing.JTextField;


public class SwingSample extends JFrame

{

JPanel jp = new JPanel();

JLabel jl = new JLabel();

JTextField tf = new JTextField(25);

JTextArea ta = new JTextArea();

JButton bt = new JButton("입력");


public SwingSample()

{

super("자바 스윙 컴포넌트 활용예시");

init();

}

private void init()

{

ta.setEnabled(false);

jp.setLayout(new FlowLayout());

jp.add(tf);

jp.add(bt);

setLayout(new BorderLayout());

add(ta);

add(jp, BorderLayout.SOUTH);

setSize(400, 300);

setDefaultCloseOperation(EXIT_ON_CLOSE);

setVisible(true);

}

}






03. 레이아웃

 샘플1. 채팅

-> [2013-10-29] pnButtom이 식별상 오타라 pnButton으로 수정합니다.






 샘플2. 계산기








04. 이미지 넣기

'프로그래밍note > 언어. JAVA & JDK 계열' 카테고리의 다른 글

JAVA: 스레드  (0) 2012.08.27
JAVA: 이벤트처리  (0) 2012.08.23
JAVA: 자바 기초 (4)  (0) 2012.08.08
이클립스: 설정 및 팁  (0) 2012.07.20
JAVA: 자바 기초 (3)  (0) 2012.07.17