Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java Swing에서 JTextArea 텍스트 방향을 오른쪽에서 왼쪽(RTL)으로 설정하는 방법

JTextAreaJTextComponent 클래스의 하위 클래스로, 여러 줄의 텍스트를 표시하거나 사용자가 직접 텍스트를 입력할 수 있도록 지원하는 멀티라인 텍스트 컴포넌트입니다. JTextArea의 기능을 구현할 때는 CaretListener 인터페이스를 활용해 캐럿(커서) 관련 이벤트를 처리할 수도 있습니다.

기본적으로 JTextArea의 텍스트 방향은 왼쪽에서 오른쪽(LTR)으로 설정되어 있습니다. 하지만 아랍어나 히브리어처럼 오른쪽에서 왼쪽으로 읽고 쓰는 언어를 지원해야 하는 경우에는 JTextArea 클래스의 setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT) 메서드를 사용하여 텍스트 방향을 오른쪽에서 왼쪽(RTL)으로 손쉽게 변경할 수 있습니다.

구현 예제

아래 예제 코드는 JFrame 안에 JTextArea를 배치하고, setComponentOrientation() 메서드를 호출하여 텍스트 입력 방향을 오른쪽에서 왼쪽으로 설정하는 전체 과정을 보여줍니다.

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

public class JTextAreaOrientationTest extends JFrame {
    private JTextArea textArea;

    public JTextAreaOrientationTest() {
        setTitle("JTextAreaOrientation Test");
        textArea = new JTextArea();
        // 텍스트 방향을 오른쪽에서 왼쪽(RTL)으로 설정
        textArea.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
        add(new JScrollPane(textArea), BorderLayout.CENTER);
        setSize(400, 275);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
        setVisible(true);
    }

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

실행 결과

위 코드를 실행하면 다음과 같이 JTextArea 내부의 커서가 오른쪽 끝에서 시작하며, 입력한 텍스트가 오른쪽에서 왼쪽 방향으로 정렬되어 표시됩니다.

Java Swing에서 JTextArea 텍스트 방향을 오른쪽에서 왼쪽(RTL)으로 설정하는 방법

핵심 포인트 정리

  • JTextArea: JTextComponent를 상속받은 멀티라인 텍스트 입출력 컴포넌트
  • CaretListener: 캐럿 위치 변화 등 JTextArea 이벤트 처리에 활용 가능한 인터페이스
  • setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT): 컴포넌트의 텍스트 방향을 오른쪽에서 왼쪽으로 변경하는 핵심 메서드
  • 반대로 기본값인 왼쪽에서 오른쪽 방향으로 되돌리려면 ComponentOrientation.LEFT_TO_RIGHT를 인수로 전달하면 됩니다.