- [Java 기본] AWT - Panel, Label, Button, Checkbox, Choice, List, TextField, TextArea
출처 : http://cafe.naver.com/litave/377
//===========================================================================//
본 내용은 2002년 제가 Java 강의를 수강하며 정리 했던 내용을
기본으로 하여 정리하였습니다.
- 마침 java 기초를 전파할 기회가 생겨 핑계김에 정리해 가려 합니다.
작성자 : litwave
//---------------------------------------------------------------------------//
<목차>
1. Component
- Panel, Label, Button, Checkbox, Choice, List, TextField, TextArea
//---------------------------------------------------------------------------//
1. Component 설명
1.1 Panel
-> 하나의 Layout에는 하나의 객체 밖에 표현할 수 없지만, 복잡한 레이아웃을 만들기 위해서는
Panel 을 사용하여 하나의 공간을 만들어 여러개의 작업을 넣을 수 있다.
Panel 은 BorderLayout, FlowLayout, GridLayout 등을 담을 수 있다.
1.2 Label
- 글자를 적을 수 있는 객체이다.
1) 메소드
getText(); // 현재 들어 있는 Text를 가져 오는 것
setText(String); // 어떤 문자로 저장하는 것
1.3 Button
1) 생성자 :
Button();
Button(String);
2) 메소드
getLabel();
setLabel(String);
1.4 Checkbox
1) 생성자 :
new Checkbox(); // ㅁ
new Checkbox("text"); // ㅁ text // default false
new Checkbox("text1", true); // 채크된 상태로 체크박스 생김.
new Checkbox("남성", true, cg); // cg라는 그룹으로 묶음... 동그란 채크 박스 생김
new Checkbox("여성", cg, false); //
// 뒤에 선언 되어 있어야 한다. CechboxGroup cg = new CheckboxGroup();
2) 메소드 :
getState(); // 현재의 채크상태를 알고 싶을 때 사용
setState(); // 채크를 할지 말지 설정
1.5 Choice
1) 생성자 :
new Choice();
ex) Choice ch = new Choice();
ch.add("A형");
ch.add("B형");
ch.add("O형");
ch.add("AB형");
2) 메소드 :
getSelectedItem(); //현재 무엇이 선택 되었는지 알아오는 것
get와 set 는 대충 다 알아 둘것.
1.6 List // 플로우에서 정상적으로 동작
- java.util.List과의 충돌을 피하기위해 절대 경로명을 사용해서 충돌을 피해 주어야 한다.
import java.awt.*;
import java.awt.List; //이것만 유효하게 사용하겠다.
1) 생성자 new List(int, boolean);
int : display rows //표시행수
boolean : multiple selection // 다중 선택
1.7 TextField // 글자를 적을 수 있는 한줄로 되어 있는 공간
1) 생성자 :
new TextField()
new TextField(int) // 영문알파벳 대문자 중 가장 큰 문자 기준으로 int개수만큼 들어갈 공간 할당
new TextField(String) // 텍스트 필드 생성 후 글자를 기본적으로 찍어 줌
new TextField(String, int)
2) 메소드
getText() // 글자를 가져 올 때..
setText(String) // 글자를 집어 넣을 때..
1.8 TextArea //게시판 같은 곳 여러 라인을 적을 수 있는 것
1) 생성자
new TextArea(); // 스크롤바 자동으로 만들어짐
new TextArea(int, int); // 행과 열을 지정해서 만듦
new TextArea(String); // 임의의 문자열이 Default로 들어 간다.
new TextArea(String, int, int);
2) 메소드
getText();
setText(String); //원래 있던거 모두 지우고 새로 글자를 채움
append(String); //있는 글자 뒤에 새로운 글자만 추가함
//---------------------------------------------------------------------------//
// 수업중 소스
// Ex0116_01.java : BorderLayout 내에 Panel 삽입 후 Panel에 FlowLayout 삽입
import java.awt.*;
class Ex0116_01_Sub extends Frame {
private Label lb = new Label("다음은 Message 입니다.");
private Label lb1 = new Label("경고 : ", Label.CENTER);
private Button bt = new Button("자세히 >>");
private Button bt1 = new Button("확인");
private Button bt2 = new Button("취소");
public Ex0116_01_Sub(String str) {
super(str);
//this.setTitle(str);
this.setLayout(new BorderLayout());
this.init();
this.setSize(300, 200);
this.setVisible(true);
}
public void init() {
this.add("North", lb);
this.add("West", lb1);
this.add("Center", bt);
Panel p = new Panel();
p.setLayout(new FlowLayout(FlowLayout.RIGHT));
p.add(bt1);
p.add(bt2);
this.add("South", p);
}
}
public class Ex0116_01 {
public static void main(String[] ar) {
Ex0116_01_Sub es = new Ex0116_01_Sub("Test");
}
}
//---------------------------------------------------------------------------//
// Ex0116_02.java: 회원 가입 폼 작성
import java.awt.*;//List
import java.util.*;//List
import java.awt.List;
class Ex0116_02_Sub extends Frame{
//West start
private Label lb = new Label("등록된 사용자 List");
private List li = new List(5, false);
private Button bt = new Button("신규가입");
//West end
//Center start
//Cen-Nor start
private Label lb1 = new Label("회원가입폼");
//Cen-Nor end
//Cen-West start
private Label lb2 = new Label("이름 : ", Label.RIGHT);
private Label lb3 = new Label("주민번호 : ", Label.RIGHT);
private Label lb4 = new Label("생년월일 : ", Label.RIGHT);
private Label lb5 = new Label();
private Label lb6 = new Label("주소 : ", Label.RIGHT);
//Cen-West end
//Cen-South start
private Button bt1 = new Button("등록");
private Button bt2 = new Button("Clear");
private Button bt3 = new Button("종료");
//Cen-South end
//Cen-Cen start
private TextField tf = new TextField();
private TextField tf1 = new TextField(6);
private Label lb7 = new Label("-", Label.CENTER);
private TextField tf2 = new TextField(6);
private Choice ch = new Choice();
private Label lb8 = new Label("년");
private Choice ch1 = new Choice();
private Label lb9 = new Label("월");
private Choice ch2 = new Choice();
private Label lb10 = new Label("일");
private TextField tf3 = new TextField();
//Cen-Cen end
//Center end
public Ex0116_02_Sub(String str){
super(str);
this.setLayout(new BorderLayout(5, 5));
this.init();
this.pack();
this.setVisible(true);
}
public void init(){
//West
Panel p = new Panel();
p.setLayout(new BorderLayout());
p.add("North", lb);
p.add("Center", li);
p.add("South", bt);
this.add("West", p);
//Center
Panel p1 = new Panel();
p1.setLayout(new BorderLayout());
p1.add("North", lb1);
Panel p2 = new Panel();
p2.setLayout(new GridLayout(5, 1));
p2.add(lb2);
p2.add(lb3);
p2.add(lb4);
p2.add(lb5);
p2.add(lb6);
p1.add("West", p2);
Panel p3 = new Panel();
p3.setLayout(new FlowLayout(FlowLayout.RIGHT));
p3.add(bt1);
p3.add(bt2);
p3.add(bt3);
p1.add("South", p3);
Panel p4 = new Panel();
p4.setLayout(new GridLayout(5, 1));
p4.add(tf);
Panel p5 = new Panel();
p5.setLayout(new BorderLayout());
p5.add("West", tf1);
p5.add("Center", lb7);
p5.add("East", tf2);
p4.add(p5);
Panel p6 = new Panel();
p6.setLayout(new BorderLayout());
p6.add("Center", ch);
p6.add("East", lb8);
p4.add(p6);
Panel p7 = new Panel();
p7.setLayout(new GridLayout(1, 2));
Panel p8 = new Panel();
p8.setLayout(new BorderLayout());
p8.add("Center", ch1);
p8.add("East", lb9);
p7.add(p8);
Panel p9 = new Panel();
p9.setLayout(new BorderLayout());
p9.add("Center", ch2);
p9.add("East", lb10);
p7.add(p9);
p4.add(p7);
p4.add(tf3);
p1.add("Center", p4);
this.add("Center", p1);
this.initData();
}
public void initData(){
for(char ch = 'a'; ch <= 'z'; ch++){
li.add("" + ch + ch + ch);
}
for(int i = 1; i <= 12; i++){
ch1.add(i + "");
}
for(int i = 1; i <= 31; i++){
ch2.add(i + "");
}
Calendar ca = Calendar.getInstance();//객체
int year = ca.get(Calendar.YEAR);
for(int i = year; i >= 1900; i--){
ch.add(i + "");
}
}
}
public class Ex0116_02{
public static void main(String[] ar){
Ex0116_02_Sub es = new Ex0116_02_Sub("회원가입폼");
}
}
//---------------------------------------------------------------------------//
// 과제 : 아래와 같이 화면을 구성하시오
//===========================================================================//
본 내용은 2002년 제가 Java 강의를 수강하며 정리 했던 내용을
기본으로 하여 정리하였습니다.
- 마침 java 기초를 전파할 기회가 생겨 핑계김에 정리해 가려 합니다.
작성자 : litwave
//---------------------------------------------------------------------------//
<목차>
1. Component
- Panel, Label, Button, Checkbox, Choice, List, TextField, TextArea
//---------------------------------------------------------------------------//
1. Component 설명
1.1 Panel
-> 하나의 Layout에는 하나의 객체 밖에 표현할 수 없지만, 복잡한 레이아웃을 만들기 위해서는
Panel 을 사용하여 하나의 공간을 만들어 여러개의 작업을 넣을 수 있다.
Panel 은 BorderLayout, FlowLayout, GridLayout 등을 담을 수 있다.
1.2 Label
- 글자를 적을 수 있는 객체이다.
1) 메소드
getText(); // 현재 들어 있는 Text를 가져 오는 것
setText(String); // 어떤 문자로 저장하는 것
1.3 Button
1) 생성자 :
Button();
Button(String);
2) 메소드
getLabel();
setLabel(String);
1.4 Checkbox
1) 생성자 :
new Checkbox(); // ㅁ
new Checkbox("text"); // ㅁ text // default false
new Checkbox("text1", true); // 채크된 상태로 체크박스 생김.
new Checkbox("남성", true, cg); // cg라는 그룹으로 묶음... 동그란 채크 박스 생김
new Checkbox("여성", cg, false); //
// 뒤에 선언 되어 있어야 한다. CechboxGroup cg = new CheckboxGroup();
2) 메소드 :
getState(); // 현재의 채크상태를 알고 싶을 때 사용
setState(); // 채크를 할지 말지 설정
1.5 Choice
1) 생성자 :
new Choice();
ex) Choice ch = new Choice();
ch.add("A형");
ch.add("B형");
ch.add("O형");
ch.add("AB형");
2) 메소드 :
getSelectedItem(); //현재 무엇이 선택 되었는지 알아오는 것
get와 set 는 대충 다 알아 둘것.
1.6 List // 플로우에서 정상적으로 동작
- java.util.List과의 충돌을 피하기위해 절대 경로명을 사용해서 충돌을 피해 주어야 한다.
import java.awt.*;
import java.awt.List; //이것만 유효하게 사용하겠다.
1) 생성자 new List(int, boolean);
int : display rows //표시행수
boolean : multiple selection // 다중 선택
1.7 TextField // 글자를 적을 수 있는 한줄로 되어 있는 공간
1) 생성자 :
new TextField()
new TextField(int) // 영문알파벳 대문자 중 가장 큰 문자 기준으로 int개수만큼 들어갈 공간 할당
new TextField(String) // 텍스트 필드 생성 후 글자를 기본적으로 찍어 줌
new TextField(String, int)
2) 메소드
getText() // 글자를 가져 올 때..
setText(String) // 글자를 집어 넣을 때..
1.8 TextArea //게시판 같은 곳 여러 라인을 적을 수 있는 것
1) 생성자
new TextArea(); // 스크롤바 자동으로 만들어짐
new TextArea(int, int); // 행과 열을 지정해서 만듦
new TextArea(String); // 임의의 문자열이 Default로 들어 간다.
new TextArea(String, int, int);
2) 메소드
getText();
setText(String); //원래 있던거 모두 지우고 새로 글자를 채움
append(String); //있는 글자 뒤에 새로운 글자만 추가함
//---------------------------------------------------------------------------//
// 수업중 소스
// Ex0116_01.java : BorderLayout 내에 Panel 삽입 후 Panel에 FlowLayout 삽입
import java.awt.*;
class Ex0116_01_Sub extends Frame {
private Label lb = new Label("다음은 Message 입니다.");
private Label lb1 = new Label("경고 : ", Label.CENTER);
private Button bt = new Button("자세히 >>");
private Button bt1 = new Button("확인");
private Button bt2 = new Button("취소");
public Ex0116_01_Sub(String str) {
super(str);
//this.setTitle(str);
this.setLayout(new BorderLayout());
this.init();
this.setSize(300, 200);
this.setVisible(true);
}
public void init() {
this.add("North", lb);
this.add("West", lb1);
this.add("Center", bt);
Panel p = new Panel();
p.setLayout(new FlowLayout(FlowLayout.RIGHT));
p.add(bt1);
p.add(bt2);
this.add("South", p);
}
}
public class Ex0116_01 {
public static void main(String[] ar) {
Ex0116_01_Sub es = new Ex0116_01_Sub("Test");
}
}
//---------------------------------------------------------------------------//
// Ex0116_02.java: 회원 가입 폼 작성
import java.awt.*;//List
import java.util.*;//List
import java.awt.List;
class Ex0116_02_Sub extends Frame{
//West start
private Label lb = new Label("등록된 사용자 List");
private List li = new List(5, false);
private Button bt = new Button("신규가입");
//West end
//Center start
//Cen-Nor start
private Label lb1 = new Label("회원가입폼");
//Cen-Nor end
//Cen-West start
private Label lb2 = new Label("이름 : ", Label.RIGHT);
private Label lb3 = new Label("주민번호 : ", Label.RIGHT);
private Label lb4 = new Label("생년월일 : ", Label.RIGHT);
private Label lb5 = new Label();
private Label lb6 = new Label("주소 : ", Label.RIGHT);
//Cen-West end
//Cen-South start
private Button bt1 = new Button("등록");
private Button bt2 = new Button("Clear");
private Button bt3 = new Button("종료");
//Cen-South end
//Cen-Cen start
private TextField tf = new TextField();
private TextField tf1 = new TextField(6);
private Label lb7 = new Label("-", Label.CENTER);
private TextField tf2 = new TextField(6);
private Choice ch = new Choice();
private Label lb8 = new Label("년");
private Choice ch1 = new Choice();
private Label lb9 = new Label("월");
private Choice ch2 = new Choice();
private Label lb10 = new Label("일");
private TextField tf3 = new TextField();
//Cen-Cen end
//Center end
public Ex0116_02_Sub(String str){
super(str);
this.setLayout(new BorderLayout(5, 5));
this.init();
this.pack();
this.setVisible(true);
}
public void init(){
//West
Panel p = new Panel();
p.setLayout(new BorderLayout());
p.add("North", lb);
p.add("Center", li);
p.add("South", bt);
this.add("West", p);
//Center
Panel p1 = new Panel();
p1.setLayout(new BorderLayout());
p1.add("North", lb1);
Panel p2 = new Panel();
p2.setLayout(new GridLayout(5, 1));
p2.add(lb2);
p2.add(lb3);
p2.add(lb4);
p2.add(lb5);
p2.add(lb6);
p1.add("West", p2);
Panel p3 = new Panel();
p3.setLayout(new FlowLayout(FlowLayout.RIGHT));
p3.add(bt1);
p3.add(bt2);
p3.add(bt3);
p1.add("South", p3);
Panel p4 = new Panel();
p4.setLayout(new GridLayout(5, 1));
p4.add(tf);
Panel p5 = new Panel();
p5.setLayout(new BorderLayout());
p5.add("West", tf1);
p5.add("Center", lb7);
p5.add("East", tf2);
p4.add(p5);
Panel p6 = new Panel();
p6.setLayout(new BorderLayout());
p6.add("Center", ch);
p6.add("East", lb8);
p4.add(p6);
Panel p7 = new Panel();
p7.setLayout(new GridLayout(1, 2));
Panel p8 = new Panel();
p8.setLayout(new BorderLayout());
p8.add("Center", ch1);
p8.add("East", lb9);
p7.add(p8);
Panel p9 = new Panel();
p9.setLayout(new BorderLayout());
p9.add("Center", ch2);
p9.add("East", lb10);
p7.add(p9);
p4.add(p7);
p4.add(tf3);
p1.add("Center", p4);
this.add("Center", p1);
this.initData();
}
public void initData(){
for(char ch = 'a'; ch <= 'z'; ch++){
li.add("" + ch + ch + ch);
}
for(int i = 1; i <= 12; i++){
ch1.add(i + "");
}
for(int i = 1; i <= 31; i++){
ch2.add(i + "");
}
Calendar ca = Calendar.getInstance();//객체
int year = ca.get(Calendar.YEAR);
for(int i = year; i >= 1900; i--){
ch.add(i + "");
}
}
}
public class Ex0116_02{
public static void main(String[] ar){
Ex0116_02_Sub es = new Ex0116_02_Sub("회원가입폼");
}
}
//---------------------------------------------------------------------------//
// 과제 : 아래와 같이 화면을 구성하시오
'scrap > Java/JSP' 카테고리의 다른 글
- [Java 기본]AWT, Listener, Event (0) | 2011.05.14 |
---|---|
- [Java 기본]Menu, Frame 정렬, FileDialog, Dialog, Event (0) | 2011.05.14 |
- [Java 기본]AWT, FlowLayout, GridLayout, BorderLayout (0) | 2011.05.14 |
- [Java 기본]프로세스와 쓰레드 (0) | 2011.05.14 |
- [Java 기본]다형성, Abstract, Interface, Inner Class (0) | 2011.05.14 |