관리 메뉴

드럼치는 프로그래머

[JAVA] Frame Container | J2SE 본문

★─Programing/☆─JAVA

[JAVA] Frame Container | J2SE

드럼치는한동이 2007. 11. 12. 10:27

1> Frame 컨테이너

Frame 컨테이너는 어플리케이션의 대표적인 컨테이너이다. 이때까지 우리가 예제를 다룬것에서 그다지 벗어나지 않는다. Frame 컨테이너에서도 애플릿과 마찬가지로 add()를 이용해서 컴포넌트를 부착하면 된다. 다만 Frame 컨테이너는 부착을 할때 위치를 지정해 줘야한다. 또한 Frame 컨테이너의 크기를 결정해주는 setSize() 라든지 setBounds()를 반드시 코딩해 줘야하며 화면에 보이도록 setVisible(true)나 show() 메서드를 코딩해 줘야한다.

2> Frame 컨테이너 사용하기

  1. Frame 클래스 import 하기(import java.awt.Frame;)
  2. Frame 클래스 상속 받기
  3. setSize() 혹은 setBounds()로 크기 결정하기 --> 중요
  4. setVisible(true)나 show() 로 화면에 출력하기 --> 하지 않으면 화면에 보이지 않음.

3> Frame 컨테이너 사용 예

1. LabelFrame.java

 


// Frame 클래스를 import 한다.
// Frame 클래스는 awt 패키지에 속하므로 다음과 같이 해도 된다.
import java.awt.*;

public class LabelFrame extends Frame{

public static void main(String[] args){

//애플릿과는 달리 프레임은 객체를 생성해 줘야한다.
LabelFrame lf=new LabelFrame();

// 라벨을 생성한다.
Label label1 = new Label("첫번째");
Label label2 = new Label("두번째");
Label label3 = new Label("세번째");

// 라벨에 배경색을 설정한다.
label1.setBackground(Color.red);
label2.setBackground(Color.yellow);
label3.setBackground(Color.green);

// 라벨을 붙인다.
lf.add(label1);
lf.add(label2);
lf.add(label3);

// 반드시 크기결정과 화면출력을 해줘야한다.
// 에러는 나지 않지만 실행시 화면이 보이지 않는다.

lf.setSize(300,300);
lf.show();

    }
}


<< 실행 결과 >>

이미지를 클릭하시면 원본크기로 보실수 있습니다.



실행결과를 보면 좀 황당하다는 생각이 들것이다. 왜냐면 맨 마지막에 부착을 했던 라벨만이 보이기 때문이다. 이것은 애플릿과 프레임의 배치 관리자가 달라서 그렇다. 다시 말하면 애플릿은 붙이는 순서대로 붙는 배치가 디폴트이고 (이것을 FlowLayout 이라한다.) 프레임은 5가지로 영역이 나누어서 붙는 배치가 디폴트이기 때문이다.(이것을 BorderLayout 이라한다.)

 

아직 배치에 관해 배우지 않았으므로 결과에는 신경을 쓰지 말고 넘어가자.
어쨌든 여기서 중요한 것은 애플릿으로 코딩한 것을 프레임으로 혹은 프레임을 애플릿으로 바꾸는 연습을 많이하고 그 원리를 이해해야한다.


출처 : getJAVA™

Comments