lang/java

java AWT Frame객체 & Panel객체

C/H 2007. 6. 20. 16:47
[code type=java]
// MyFrame.java
import java.awt.*;
import java.awt.event.*; class MyFrame
{
 public static void main(String[] args)
 {
  Frame fr = new Frame("Hello COOKIE!!");   fr.setSize(500, 500);
  fr.setVisible(true);   fr.addWindowListener(new WindowAdapter(){
   public void windowClosing(WindowEvent w){
    System.exit(0);
   }
  });
 }
}

// FrameEx1.java
import java.awt.*;
import java.awt.event.*; class  FrameEx1 extends Frame
{
 public FrameEx1(String name){
  super(name);
 }  public void showFrame(){
  setSize(300, 300);
  setLocation(100, 200);
  setBackground(Color.yellow);
  setVisible(true);   // 종료 버튼을 누르면 종료하게 만들기 (없어도 실행은 가능)
  addWindowListener(new WindowAdapter(){
   public void windowClosing(WindowEvent w){
    System.exit(0);
   }
  });
 }  public static void main(String[] args)
 {
  FrameEx1 ex1 = new FrameEx1("Frame을 보여주기1");
  ex1.showFrame();
 }
}

/* 분석
FrameEx1.java는 직접 java.awt.Frame 클래스를 상속받아서 만들고 있다. 이렇게 되면 FrameEx1 역시 Frame 객체이기 때문에 쉽게 Frame 클래스의 메소들을 이용할 수 있다. public FrameEx1(String name) 에서 생성자부분을 보면 super()를 호출해서 사용하고 잇다. 자신이 Frame객체를 상속 받았기 때문에 부모 클래스의 생성자를 호출하고 있다. showFrame()은 사용자가 만든 메소드이다. 내부에서 보면 라인 12에서는 가로 300, 세로 300크기를 가지도록 하고, 화면에 나타날 때 가로 100px, 세로 200px이 디ㅗ는 위치에 표시되도록 한다.
setBackground(Color.yellow) 은 Frame의 배경색을 지정한다. AWT패키지 내에는 Color라는 클래스가 잇는데 많이 쓰이는 색상은 'Color.yellow'와 같이 사용 할 수 있다. setVisible(true)은 화면을 모벼울 것인가를 결정한다.
*/

// PanelEx1.java
import java.awt.*;
import java.awt.event.*;

class  PanelEx1
{
 Panel p1;  public PanelEx1(String name){
  p1 = new Panel();
  p1.setName(name);
  p1.setBackground(Color.blue);
 }  public Panel getPanel1(){
  return p1;
 }  
 
 public static void main(String[] args)
 {
  PanelEx1 ex1 = new PanelEx1("Panel");  
  Frame f = new Frame("패널 부여주기");
  f.add(ex1.getPanel1());   f.setSize(200, 200);
  f.setVisible(true);   // 종료버튼
  f.addWindowListener(new WindowAdapter(){
   public void windowClosing(WindowEvent w){
    System.exit(0);
   }
  });
 }
}
/* 분석
PanelEx1.java는 클래스에서 Panel객체를 생성한다. p1.setBackground(Color.blue) Panel생상을 지정. main()메소드 내에서는 Frame f = Frame("패널 부여주기")로 내부적으로 Frame을 생성해서 f.add(ex1.getPanel1()) Panel객체를 붙여주는 방식으로 구성된다. 이렇게 되면 Frame위에 Panel이 추가되는 구조가 된다.

만약 f.add(ex1.getPanel1())에서 f.add를 해주지 않는다면 Frame객체는 panel객체를 포함하지 않기 때문에 원래 Frame이 가진 색상이 표현된다.
*/
[/code]
반응형