▶ 텍스트 컴포넌트
- 텍스트 컴포넌트들은 텍스트를 표시하며 사용자가 텍스트를 편집하거나 입력할 수 있게 하는 컴포넌트이다.
- 모든 텍스트 컴포넌트들은 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) | start와 end 사이의 텍스트를 선택한다. |
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) | 텍스트(문자열)의 정렬 방법을 설정하고 반환한다. 아래는 매개변수이다
| |
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) | 구체화된 추상화 포매터를 매개변수로 넘겨받아 해당 포매터의 형식화 텍스트 필드를 생성한다. 매개변수는 아래와 같다.
| |
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() | 줄의 개수를 반환한다. |
'Programming Language > JAVA' 카테고리의 다른 글
25. JList - 리스트 (0) | 2017.06.25 |
---|---|
24. JScrollPane - 스크롤 페인 (0) | 2017.06.25 |
22. ImageIcon, JCheckBox, JRadioButton, Border - 이미지, 체크박스, 라디오 버튼, 경계 (1) | 2017.06.25 |
21. JComponent Class - 스윙의 최상위 컴포넌트 클래스 (0) | 2017.05.26 |
20. ComponentEvent, ContainerEvent, FocusEvent, WindowEvent - 컴포넌트 이벤트, 컨테이너 이벤트, 포커스 이벤트, 윈도우 이벤트 (0) | 2017.05.26 |