-
java :: GUI 프로그래밍-1IT/Java & JSP & FW 2011. 12. 26. 12:47GUI
그래픽 유져 인터페이스의 약자로 보통 윈도우 프로그램으로 불리고 있는 프로그램 기법중에 하나이다.
AWT
Abstract Window Toolkit 의 약자로 자바에서 GUI 프로그램을 작성하기 위한 도구의 집합이라고 생각하면 쉽고, java.awt라는 패키지에서 제공되는 클래스로 버튼, 체크박스 등 다양한 GUI컴포넌트 들을 만들어 낼 수 있는 도구모음이다.
Frame
자바에서의 대표적인 컨테이너
절차
1. java.awt.* 를 import한다.
2. 프래임을 생성한다.
3. 프래임의 크기를 지정한다.
4. 프레임이 화면에 나타나도록 한다.
화면과 프레임의 크기
형식
Dimension dim=Toolkit.getDefaultToolkit().getScreenSize();
AWT 배치관리자
Component를 어떤 형태로 배치되어야 할지 결정해 주는 결정자
Layout 종류
- FlowLayout
- GridLayout
- BorderLayout
- CardLayout
- GridBagLayout
예제1
(myFrame.java)
//1. import 하기 import java.awt.*; public class myFrame { public static void main(String[] args) { //2. Frame 객체 생성하기 Frame f=new Frame("나의 첫 프래임"); //3. Frame 크기지정 f.setSize(300, 300); //사용자 스크린 크기 확인하기 and 정중앙 위치시키기 Dimension dim=Toolkit.getDefaultToolkit().getScreenSize(); int x=(int)dim.width/2-150; int y=(int)dim.height/2-150; System.out.println("x="+x+"/y="+y); f.setLocation(x, y); //4. 활성화 시켜주기 (이렇게 해야 뜬다.) f.setVisible(true); } }
예제2
(myFrame2.java)
import java.awt.*; public class myFrame2 { public static void main(String[] args) { Frame f=new Frame("2"); f.setSize(300, 300); Dimension dim=Toolkit.getDefaultToolkit().getScreenSize(); int x=(int)dim.width/2-150; int y=(int)dim.height/2-150; f.setLocation(x, y); f.setVisible(true); //////////////버튼생성////////////// Button bt1=new Button("bt1"); Button bt2=new Button("bt2"); Button bt3=new Button("bt3"); Button bt4=new Button("bt4"); Button bt5=new Button("bt5"); ////////배치관리자 - 레이아웃 생성하기 //순차적으로 컴포넌트를 고유한 모양으로 출력해주는 배치관리자. // FlowLayout f1=new FlowLayout(FlowLayout.CENTER,20,10); // f.setLayout(f1); //f 레이아웃에 setLayout을 통해 f1을 배치관리자로 만든다. //borderlayout : 5개의 영역을 지정해 각각의 컴포넌트를 부착하는 레이아웃 BorderLayout b1=new BorderLayout(); f.setLayout(b1); //f 프레임에 bt1을 붙인다. f.add(bt1, BorderLayout.NORTH); f.add(bt2, BorderLayout.CENTER); f.add(bt3, BorderLayout.WEST); f.add(bt4, "South"); f.add(bt5, "East"); } }
예제3
(myFrame3.java)
import java.awt.*; public class myFrame3 extends Frame{ public myFrame3(){ super("GridLayoutTest"); Button bt1=new Button("bt1"); Button bt2=new Button("bt2"); Button bt3=new Button("bt3"); Button bt4=new Button("bt4"); Button bt5=new Button("bt5"); GridLayout g1=new GridLayout(2,3,10,10); this.setLayout(g1); this.add(bt1); add(bt2); add(bt3); add(bt4); add(bt5); //다중 레이아웃 정의 Panel p=new Panel(); p.setBackground(Color.yellow); add(p); BorderLayout b1=new BorderLayout(10,10); p.setLayout(b1); Button bt6=new Button("bt6"); Button bt7=new Button("bt7"); p.add(bt6, "North"); p.add(bt7, "South"); } //레이아웃중 기본으로 제공하지 않는 기능을 오버라이딩하여 사용하기(프레임 여백) @Override public Insets getInsets() { Insets i=new Insets(40,20,20,20); return i; } public static void main(String[] args) { myFrame3 mf=new myFrame3(); mf.setSize(300,300); mf.setVisible(true); } }
예제4
(FrameTest.java)
import java.awt.*; public class FrameTest extends Frame { public FrameTest(){ super("실험!"); BorderLayout b=new BorderLayout(10,10); this.setLayout(b); /////////중단 Panel p1=new Panel(); this.add(p1,"Center"); //p1패널을 붙일 때, center를 붙여서 p1패널을 영역지정시킬 수 있다. p1.setBackground(Color.gray); GridLayout g1=new GridLayout(2,2,10,10); p1.setLayout(g1); Button bt1=new Button("bt1"); Button bt2=new Button("bt2"); Button bt3=new Button("bt3"); Button bt4=new Button("bt4"); p1.add(bt1); p1.add(bt2); p1.add(bt3); p1.add(bt4); /////////하단 Panel p2=new Panel(); this.add(p2,"South"); p2.setBackground(Color.blue); BorderLayout b1=new BorderLayout(); p2.setLayout(b1); Button bt5=new Button("bt5"); Button bt6=new Button("bt6"); p2.add(bt5,"North"); p2.add(bt6,"South"); } @Override public Insets getInsets() { Insets i=new Insets(40,20,20,20); return i; } public static void main(String[] args) { FrameTest ft=new FrameTest(); ft.setSize(300, 300); Dimension dim=Toolkit.getDefaultToolkit().getScreenSize(); int x=(int)dim.width/2-150; int y=(int)dim.height/2-150; ft.setLocation(x, y); ft.setVisible(true); } }
'IT > Java & JSP & FW' 카테고리의 다른 글
java :: GUI 프로그래밍-3 (0) 2011.12.28 java :: GUI 프로그래밍-2 (0) 2011.12.27 java :: InnerClass (내부클래스) (0) 2011.12.23 java :: 유용한 API, String, StringBuffere, StringTokenizer (0) 2011.12.22 java :: Exception(예외처리) (0) 2011.12.21