텍스트 컴포넌트

 

텍스트 컴포넌트들은 텍스트를 표시하며 사용자가 텍스트를 편집하거나 입력할 수 있게 하는 컴포넌트이다.

 

모든 텍스트 컴포넌트들은 JTextComponent 클래스를 부모 클래스로 가지며 상속받는다.


JTextComponent

카테고리

종류

설명

텍스트 필드

JTextField

한 줄로 된 텍스트를 표시하고 편집할 수 있다. 일반적으로 사용자로부터 적은 양의 텍스트를 입력받을 때 사용한다.

JPasswordField

JFormattedTextField

단순 텍스트 영역

JTextArea

여러 줄의 편집 가능한 텍스트를 나타낸다. 텍스트 영역에서는 동시에 하나의 폰트만 사용할 수 있다. 폰트는 변경 가능하다. 텍스트 영역은 사용자로 하여금 비교적 형식적인 제약이 없는 장문의 텍스트를 입력하는데 사용된다.

스타일 텍스트 영역

JEditorPane

스타일 텍스트 영역은 두 개 이상의 폰트를 동시에 사용할 수 있다. 단순 텍스트 영역의 추가 기능으로 이미지 컴포넌트도 내장할 수 있어서 고급 수요에 적합한 강력한 다용도 컴포넌트이다. 하지만 스타일 텍스트 영역은 초기에 설정해주어야 하는 것들이 많이 있다.

JTextPane



- 텍스트 편집 기능


메소드

설명

void setEditable(boolean editable)

편집 가능 여부를 설정한다.

boolean isEditable()

편집 가능하면 true, 아니면 false를 반환한다.

void setDragEnabled(boolean drag)

드래가 가능 여부를 설정한다.

boolean getDragEnabled()

드래그 가능하면 true, 아니면 false를 반환한다.



속성 설정 기능

 

메소드

설명

String getSelectedText()

현재 선택된 텍스트를 반환한다.

void selectAll()

모든 텍스트를 선택한다.

void select(int start, int end)

startend 사이의 텍스트를 선택한다.

void setSelectionStart(int start)

현재 선택된 위치를 설정하거나 반환한다.

void setSelectionEnd(int end)

int getSelectionStart()

int getSelectionEnd()

void cut()

시스템의 클립보드에 텍스트를 자르거나 복사하거나 붙여넣는다.

void copy()

void paste()

void replaceSelection(String s)

선택된 텍스트를 매개변수로 받은 문자열로 대체한다.



카렛 조작 기능 : 카렛(caret)이란 입력의 위치를 표시하는 커서이다.


메소드

설명

void setCaretPosition(int point)

문서 내의 카렛의 위치를 설정하거나 움직이거나 반환한다.

void moveCaretPosition(int point)

int getCaretPostion()

 


텍스트 입출력


메소드

설명

void read(Reader r, Object obj)

텍스트를 읽거나 다른 Writer 객체에 쓴다.

void write(Writer w)

String getText()

컴포넌트에 입력된 텍스트를 반환한다.

void setText(String str)

텍스트를 매개변수로 받은 str로 설정한다.

 

 

 

텍스트 필드(JTextField)

 

입력이 가능한 한 줄의 빈칸을 만드는 용도로 사용된다.

 

편집 여부를 결정할 수 있고, 편집을 안 할 경우 표시 전용이 된다.

 

텍스트 필드 안에서 문자열을 선택하거나 선택한 문자열을 복사 또는 붙이는 것도 가능하다.

 

텍스트 필드는 JPasswordField 클래스와 JFormattedTextField 클래스를 서브 클래스로 가지므로 두 클래스는 텍스트 필드의 메소드를 상속받는다.


JTextField

생성자

JTextField()

빈 텍스트 필드를 생성한다.

JTextField(int columns)

지정된 칸 수를 가진 텍스트 필드를 생성한다.

JTextField(String text)

지정된 문자열로 초기화된 텍스트 필드를 생성한다.

JTextField(String text, int columns)

칸 수와 문자열이 지정된 텍스트 필드를 생성한다.

메소드

void setText(String text)

현재 텍스트 필드 문자열을 설정한다.

String getText()

현재 텍스트 필드 문자열을 반환한다.

void setEditable(boolean editable)

사용자가 텍스트 필드를 수정 할 수 있는지를 설정한다.

boolean isEditable()

수정할 수 있으면 true, 아니면 false를 반환한다.

void setColumns(int colmuns)

텍스트 필드 칼럼의 크기를 설정한다.

int getColumns()

텍스트 필드 칼럼의 크기를 반환한다.

void setHorizontalAlignment(int p)

텍스트(문자열)의 정렬 방법을 설정하고 반환한다. 아래는 매개변수이다

  • JTextField.LEADING,

  • JTextField.CENTER,

  • JTextField.TRAILING

int getHorizontalAlignment()

void addActionListener(Action-

Listener actionListener)

액션 리스너를 추가하고 제거한다.

액션 이벤트는 텍스트 필드에 입력한 후 엔터를 치면 발생한다.

void removeActionListener(Action-

Listener actionListener)

void selectAll()

텍스트 필드의 모든 문자열을 선택한다.

 

주로 필드에 있는 텍스트를 제거하기 위해 아래와 같은 방법을 사용한다.


JTextField textField = new JTextField(“아무말 대잔치”);

textField.setText(“”); //자주 사용되는 방법

 

//입력을 위해 키보드 포커스를 텍스트 필드로 가져오려면 아래와 같은 방법을 사용한다.

textField.requestFocus();


 

 

 

패스워드 필드(JPasswordField)

 

패스워드 필드는 문자 그대로 비밀번호(암호)를 입력받을 때 사용된다.

 

입력받은 문자열은 모두 문자 *로 표기된다.


- 생성(선언) 방식은 JTextField 와 같다.


패스워드 필드는 텍스트 필드를 상속받으며 추가로 아래와 같은 메소드가 제공된다.


JPasswordField

메소드

설명

void setEchoChar(Char c)

화면에 대신 보여주는 문자를 지정한다.

char getEchoChar()

화면에 대신 보여주는 문자를 반환한다.

char[] getPassword()

사용자가 입력한 암호를 문자 배열 형태로 반환한다.

 

 

 

형식화 텍스트 필드(JFormattedTextField) 


형식화 텍스트 필드는 형식에 맞는 데이터를 입력 받을 때 사용한다.

 

예를 들어 날짜, 숫자, 금액, 전화 번호처럼 특정한 형식이 있는 데이터를 입력 받는 데 편리하다.

 

텍스트 필드를 상속받으며, 포매터(formatter)와 값(value)라는 속성이 추가된다. 포매터(Formatter)란 텍스트 필드의 값을 텍스트로 변환하여서 표시하고 반대로 텍스트를 값으로 변환하는 역할을 한다.

 

많이 사용되는 포매터는 DateFormatter(날짜 입력), NumberFormatter(다양한 형식의 숫자 입력), MaskFormatter(###-###형식의 전화번호 입력)이 있다.

 

JFormattedTextField

생성자

JFormattedTextField()

빈 형식화 텍스트 필드를 생성

JFormattedTextField(Format format)

지정된 포매터의 형식화 텍스트 필드를 생성

JFormattedTextField(JFormattedTextField

.AbstractFormatter formatter)

구체화된 추상화 포매터를 매개변수로 넘겨받아 해당 포매터의 형식화 텍스트 필드를 생성한다. 매개변수는 아래와 같다.

  • DataFormatter,

  • NumberFormatter,

  • MaskFormatter

JFormattedTextField(JFormattedTextField

.AbstractFormatterFactory factory)

구체화된 추상화 포매터팩토리를 매개변수로 넘겨받아 해당 팩토리의 형식화 텍스트 필드를 생성

JFormattedTextField(JFormattedTextField

.AbstractFormatterFactory factory,

Object currentValue)

팩토리와 초기값을 지정받은 형식화 텍스트 필드를 생성

JFormattedTextField(Object value)

초기값을 지정 받은 형식화 텍스트 드 생성

 

JFormattedTextField dateField = new JFormattedTextField(new DateFormatter());

dataField.setValue(new Date());

dateField.addpropertyChangeListener(“value”, this);





텍스트 영역(JTextArea)

 

앞의 텍스트 필드보다 더 많은 줄의 텍스트를 입력할 때 사용된다.

 

텍스트 영역은 디폴트값으로 편집 가능상태를 가진다.

 

아래의 생성자에서 넘겨받은 매개변수는 행과 열을 의미하며, 텍스트 영역은 스크롤되지 않기 때문에 스크롤 페인(ScrollPane)을 붙여야 스크롤 설정을 할 수 있다.


JTextArea

생성자

JTextArea()

비어있는 새로운 텍스트 영역을 생성한다.

JTextArea(int rows, int columns)

지정된 줄 수와 칸수의 비어있는 텍스트 영역을 생성한다.

JTextArea(String text)

지정된 텍스트가 입력된 텍스트 영역을 생성한다.

메소드

void setColumns(int columns)

텍스트 영역의 열의 개수를 설정

int getColumns()

텍스트 영역의 열의 개수를 반환

void setRows(int rows)

텍스트 영역의 행의 개수를 설정

int getRows()

텍스트 영역의 행의 개수를 반환

int setTabSize(int size)

하나의 탭이 몇 개의 문장에 해당되는지를 설정

int setLineWrap(boolean wrapped)

한줄이 너무 길면 줄을 자동으로 분리할 것인지를 결정하며, 디폴트는 false이다.

void append(String text)

텍스트 영역의 끝에 문자열을 추가한다.

void insert(String text, int position)

지정된 위치에 지정된 문자열을 삽입한다.

void replaceRange(String text, int start, int end)

지정된 문자열로 start에서 end까지의 위치의 문자열을 바꾼다.

int getLineCount()

줄의 개수를 반환한다.






+ Recent posts