자바 AWT 컴포넌트 TextComponent , TextField, TextArea 클래스

자바 AWT 컴포넌트 TextComponent , TextField, TextArea 클래스


java.awt.TextComponent 클래스


TextComponent 클래스는 TextField와 TextArea에서 동시에 사용할수 있는 메서드들을 정의하고 있다

  • . 메서드(Methods)
    Method 내용
    int getCaretPosition() 현재 커서의 위치얻기
    String getSelectedText() 선택된 문자열 얻기
    int getSelectedEnd() 선택된 문자열의 끝 위치 얻기
    int getSelectedStart() 선택된 문자열의 시작 위치 얻기
    String getText() 전채 문자열 얻기
    boolean isEditable() 텍스트 수정 가능 여부 확인하기
    void select(int start, int end) start에서 end 까지의 선택영역 지정하기
    void selectAll() 전체 문자열 선택하기
    void setCarePosition(int pos) 커서의 위치 설정하기
    void setEditable(boolean b) 텍스트 수정 가능 여부 설정하기
    void setSelectionEnd(int end) 선택할 문자열의 끝 위치 설정하기
    void setSelectionStart(int start) 선택할 문자열의 시작위치 설정하기
    void setText(String str) 현재 컴포넌트에 str문자열 설정하기

java.awt.TextField 클래스


생성자(Constructs)
Constructs 내용
TextField() 기본 TextFieldComponent생성
TextField(int column) column의 길이 값을 가지는 객체생성
TextField(String text) text문자열을 가지는 객체생성
TextField(String text, int column) text문자열을 가지고 컬럼의 길이를 가지는 객체생성

메서드(Methods)
Method 내용
boolean echoCharSet() echo character가 설정되어 있는지 확인하기
int getColumns() TextField의 길이 값 얻기
char getEchoChar() 현재 설정된 echo character 얻기
void setColumns(int column) TextField의 길이 값 설정하기
void setEchoChar(char c) echo character를 c로 설정하기

ex ) 초기에 text라는 글자가 **로 나오다가 5초후 text로 바뀌는 프로그램

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import java.awt.*;

public class Round17_Ex02 {
public static void main(String[] ar) {
Round17_Ex02_Sub round = new Round17_Ex02_Sub();
}
}

class Round17_Ex02_Sub extends Frame {
private Dimension dimen, dimen1;
private int xpos, ypos;
private Label lb1 = new Label("문자열 입력 : ", Label.LEFT);
private TextField tf1 = new TextField(30);

// TextField의 객체를 30 column으로 객체 설정
public Round17_Ex02_Sub() {
super("제목넣기");
// Frame을 상속받았기 때문에 super로 상위 상속자 호출
this.init();
this.start();
this.setSize(300, 200);
// Frame을 상속받아 this의 메소드 호출한다 가로300, 세로 200의 Frame세팅
dimen = Toolkit.getDefaultToolkit().getScreenSize();
// 화면의 스크린 가로/세로 스크린 사이즈를 가져온다
dimen1 = this.getSize();
// Frame의 가로/세로 스크린 사이즈를 가져온다
xpos = (int) (dimen.getWidth() / 2 - dimen1.getWidth() / 2);
// 정중앙의 x값을 구한다 화면의 가로 사이즈를 2로 나눈값과 Frame의 가로 사이즈를 2로
// 나눈값을 뺀다 그럼 정중앙의 x값을 구한다
ypos = (int) (dimen.getHeight() / 2 - dimen1.getHeight() / 2);
// 정중앙의 y값을 구한다 화면의 세로 사이즈를 2로 나눈값과 Frame의 세로 사이즈를 2로
// 나눈값을 뺀다 그럼 정중앙의 y값을 구한다
this.setLocation(xpos, ypos);
// Frame의 띄울 위치를 x값과 y값으로 띄울 위치를 설정한다.
this.setVisible(true);
// 화면에 보이게 한다
try {
Thread.sleep(5000);
} catch (InterruptedException ee) {
}
String str = tf1.getText().trim();
// 현재 tf1이라는 TextField에 적혀있는 글자를 가져온다 trim()은 좌우 여백제가
// 일반적으로 white character를 제거하는데 사용한다
tf1.setEchoChar((char) 0);
// echo를 재설정한다 0은 초기값
tf1.setText(str);
// tf1의 텍스트를 str로 설정한다
}

public void init() {
// 화면 구성 넣을 부분
GridBagLayout gridbag = new GridBagLayout();
GridBagConstraints gc = new GridBagConstraints();
this.setLayout(gridbag);
// 현재의 프레임의 레이아웃을 GridBagLayout으로 설정
gc.fill = GridBagConstraints.HORIZONTAL;
gc.weightx = 4;
// gc의 객체의 fill을 칸만 채우고 weightx를 4px만큼 띄운다
gridbag.setConstraints(lb1, gc);
// Constraints를 설정
this.add(lb1);
gc.weightx = 6;
gridbag.setConstraints(tf1, gc);
this.add(tf1);
tf1.setEchoChar('*');
// TextField기본 에코를 '*'로 설정한다 이제부터 TextField의 모든 글자는*로 출력이된다
}

public void start() {
// Event나 Thread 처리할 부분
}
}

java.awt.TextArea 클래스


맴버변수 (Fields)
필드속성 필드명 내용
static final int SCROLLBARS_BOTH 가로, 세로 스크롤 처리
static final int SCROLLBARS_HORIZONTAL_ONLY 가로방향 스크롤 처리
static final int SCROLLBARS_NONE 스크롤 없음
static final int SCROLLBARS_VERTICAL_ONLY 세로방향 스크롤 처리

생성자(Constructs)
Construct 내용
TextArea() 기본 TextArea 컴포넌트 생성
TextArea(int rows, int columns) 행과 열을 지정하는 생성자
TextArea(String text) text 문자열을 가지는 생성자
TextArea(String text, int rows, int cols) text문자열과 행, 열을 가지는 생성자
TextArea(String text, int rows, text문자열 , 행, 열, 그리고 스크롤바의 상태를
int cols, int scrollbars) 표시하는 생성자

메서드 (Methods)
Method 내용
void append(String str) TextArea에 str문자열 추가하기
int getColumns() 현재 설정된 컬럼의 개수 얻기
int getRows() 현재 설정된 열의 개수 얻기
void insert(String str, int pos) pos 위치에 str문자열 삽입하기
void replaceRange(String str, int s, int e) s에서 e까지의 문자열을 str로 바꾸기
void setColumns(int columns) 현재 객체의 열을 설정하기
void setRows(int rows) 현재 객체의 행을 설정하기

ex )

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
import java.awt.*;

public class Round17_Ex02 {
public static void main(String[] ar) {
Round17_Ex02_Sub round = new Round17_Ex02_Sub();
}
}

class Round17_Ex02_Sub extends Frame {
private Dimension dimen, dimen1;
private int xpos, ypos;
private Label lb1 = new Label("5초 이내에 특정 내용의 범위지정 !");
private Label lb2 = new Label("선택된 내용 : ", Label.RIGHT);
private TextArea ta = new TextArea("abcdefghijk\nlmnopqrs\ntuvwxyz\n");
// TextArea의 객체를 선언한다 기본값으로 abcd....이다.
private TextField tf = new TextField();

// TextField의 객체를 선언한다 기본값은 없다 .
public Round17_Ex02_Sub() {
super("제목넣기");
// Frame을 상속받았기 때문에 super로 상위 상속자 호출
this.init();
this.start();
this.setSize(300, 200);
// Frame을 상속받아 this의 메소드 호출한다 가로300, 세로 200의 Frame세팅
dimen = Toolkit.getDefaultToolkit().getScreenSize();
// 화면의 스크린 가로/세로 스크린 사이즈를 가져온다
dimen1 = this.getSize();
// Frame의 가로/세로 스크린 사이즈를 가져온다
xpos = (int) (dimen.getWidth() / 2 - dimen1.getWidth() / 2);
// 정중앙의 x값을 구한다 화면의 가로 사이즈를 2로 나눈값과 Frame의 가로 사이즈를 2로
// 나눈값을 뺀다 그럼 정중앙의 x값을 구한다
ypos = (int) (dimen.getHeight() / 2 - dimen1.getHeight() / 2);
// 정중앙의 y값을 구한다 화면의 세로 사이즈를 2로 나눈값과 Frame의 세로 사이즈를 2로
// 나눈값을 뺀다 그럼 정중앙의 y값을 구한다
this.setLocation(xpos, ypos);
// Frame의 띄울 위치를 x값과 y값으로 띄울 위치를 설정한다.
this.setVisible(true);
// 화면에 보이게 한다
try {
Thread.sleep(5000);
} catch (InterruptedException ee) {
}
String str = ta.getSelectedText().trim();
// 선택된 문자열을 공백없이 가져온다
int start = ta.getSelectedStart();
// 선택된 문자열의 시작점을 int형식으로 가져온다
int end = ta.getSelectedEnd();
// 선택된 문자열의 끝점을 int형식으로 가져온다
tf.setText(str);
// 선택된 문자열을 가져온걸 TextField로 설정한다.
try {
Thread.sleep(5000);
} catch (InterruptedException ee) {
}
// 5초후에
ta.replaceRange("", start, end);
// 가져온 문자열을 공백으로 바꾼다
try {
Thread.sleep(5000);
} catch (InterruptedException ee) {
}
// 5초지연
str = tf.getText().trim();
// TextField에 설정한 str을 가져온다
int length = ta.getText.trim.length();
// TextArea의 전체 문자열의 길이를 가져온다
ta.setCaretPosition(length);
// 가장 마지막 위치로 커서를 이동시킨다
ta.append(str);
// str을 추가시킨다
}

public void init() {
// 화면 구성 넣을 부분
BorderLayout border = new BorderLayout(5, 5);
this.setLayout(border);
this.add("North", lb1);
this.add("Center", ta);
BorderLayout border1 = new BorderLayout(3, 3);
Panel p = new Panel(border1);
p.add("West", lb2);
p.add("Center", tf);
this.add("South", p);
}

public void start() {
// Event나 Thread 처리할 부분
}
}

Share