프로그래밍 언어/JAVA

JTextArea, 텍스트 영역 컴포넌트

· 코딩마이데이

JTextArea

JTextArea를 이용하면 여러 줄의 문자열을 입력받을 수 있는 창(텍스트영역)을 만들 수 있습니다. 창의 크기보다 많은 줄과 문자를 입력할 수 있지만 스크롤바를 지원하지 않습니다. JTextArea 컴포넌트를 JScrollPane에 삽입되어야 스크롤바 자원을 받을 수 있습니다.

 

JTextArea 컴포넌트의 생성

텍스트명의 컴포넌트의 생성자는 다음과 같습니다.

JTextArea() // 빈 텍스트입력
JTextArea(int rows, int cols) // 입력 창이 rows x cols 개의 문자 크기만 텍스트 입력
JTextArea(String text) // text 문지열로 초기화된 텍스트 영역
JTextArea(String text, int rows, int cols) // 입력 창이 rows * cols개의 문자 크기이며 text 문자열로 초기화된 텍스트영역

 

JTextArea 컴포넌트 생성 예

container.add(new JScrollPane(new JTextArea("hello", 7, 20)));

JTextArea 컴포넌트 생성 예

 

JTextArea 컴포넌트 생성

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;

public class TextAreaEx extends JFrame {
    private JTextField tf = new JTextField(20);
    private JTextArea ta = new JTextArea(7, 20);

    public TextAreaEx() {
        setTitle("텍스트영역 만들기 예제");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        Container c = getContentPane();
        c.setLayout(new FlowLayout());

        c.add(new JLabel("입력 후 <Enter> 키를 입력하세요"));
        add(tf);
        c.add(new JScrollPane(ta));

        // 텍스트필드에 <Enter> 키 입력 때 발생하는 Action 이벤트의 리스너 등록
        tf.addActionListener(new AbstractAction() {
            public void actionPerformed(ActionEvent e) {
                JTextField t = (JTextField) e.getSource();
                ta.append(t.getText() + "\n"); // 텍스트 필드의 문자열을 텍스트 영역 창에 추가

                t.setText(""); // 현재 텍스트필드에 입력된 내용 지우기
            }
        });

        setSize(300, 300);
        setVisible(true);
    }

    public static void main(String[] args) {
        new TextAreaEx();
    }
}

 

[실행결과]

초기화면
텍스트필드에 입력하고 <Enter> 키를 누른 경우