2013년 7월 3일 수요일

(130703) 8일차 JframeTest.java, JframeTest2.java (AWT 설명, Frame 설명 및 구현)

 - AWT Vs. Swing : AWT와 Swing은 모두 GUI 프로그래밍을 말함.
 : AWT(Abstract Window Toolkit)는 윈도우에서 GUI형태로 나타나는 것을 말함. 즉, AWT는 각 OS마다 다르게 나타남.
 : 반면 Swing은 모든 플랫폼에서 같은 모양을 나타냄. AWT의 Button은 Swing에서 JButton으로 나타냄. 이러한 차이 빼고는 없으므로 Swing을 많이 사용함.



 - Component : Button, Checkbox, Radio button, Text field, Text area 등. (Layout을 이용해서 붙임)

 - Container : 여러개의 Component를 부착할 수 있게 해주는 것. (Frame - Window 객체를 상속받아서 최소화, 최대화, 닫기버튼을 가짐. Frame에 Component를 붙일 수 있음.)
 : Component는 거의 Frame을 쓴다. (Frame을 쓰지 않으면 최소화, 최대화, 닫기 구현이 번거로움)
 - Applet : 콘솔에서 돌리는것이 아니고, init 메소드를 사용.


 - Frame

 : Window의 subclass
 : title과 resizing corner를 갖는다.
 : Container 를 상속받아서 add() 를 이용해 component를 붙인다.
 : 생성자에 인수로 주어지는 String이 title 문자열로 보여진다.
 : BorderLayout(E. W, S, N, C - 동서남북 중간 5개 위치에 붙일 수 있음)을 Default Layout으로 갖는다. 
(Pannel을 이용하면 Layout에 Component를 여러개 붙인 것처럼 보이게 할 수 있다.)
setLayout() 을 이용해 Layout을 설정할수 있다.

 - Frame을 만드는 두 가지 방법

 1. extends Frame내가 만든 class가 Frame이 된다.
 2. 내가 만든 class안에서 Frame 객체 생성 
 - Frame을 만들 때 반드시 해줘야 하는 것들
 ① setSize( , ); 또는 pack()
 ② setVisible(true); // setVisible(false)가 디폴트값이므로 (화면에 보여지게 해줌)


 - JframeTest.java 소스

import javax.swing.JFrame;

public class JframeTest extends JFrame {

public JframeTest(){

// 닫기 버튼을 누르면 메모리에서 해제
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(400, 300);
this.setVisible(true);
}

public static void main(String[] args) {

new JframeTest();
}
}


 - 결과





















 - JframeTest2.java 소스

import javax.swing.JFrame;
import javax.swing.JButton;

public class JframeTest2 extends JFrame {


JButton northbutton, southbutton, eastbutton, westbutton, centerbutton;


public JframeTest2(){

// 닫기 버튼을 누르면 메모리에서 해제
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

// 객체 생성

northbutton = new JButton("북쪽");
southbutton = new JButton("남쪽");
eastbutton = new JButton("동쪽");
westbutton = new JButton("서쪽");
centerbutton = new JButton("중앙");

// 컨테이너에 컴포넌트들을 부착
this.add("North", northbutton);
this.add("South", southbutton);
this.add("East", eastbutton);
this.add("West", westbutton);
this.add(centerbutton); // 위치를 작성하지 않으면 기본으로 Center에 들어감

this.setSize(400, 300);
this.setVisible(true);
}

public static void main(String[] args) {

new JframeTest2();
}

}


 - 결과