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

Java Swing JTextArea에서 텍스트를 굵게(Bold) 표시하는 방법

JTextArea 클래스는 JTextComponent를 상속받아 사용자가 여러 줄의 텍스트를 입력할 수 있도록 지원하는 Swing 컴포넌트입니다. 또한 JTextArea는 CaretListener 인터페이스를 통해 캐럿(커서) 위치 변경 이벤트를 감지할 수 있습니다. JTextArea 내부의 텍스트에 글꼴을 설정하려면 setFont() 메서드를 사용하면 됩니다.

예제 코드

import java.awt.*;
import javax.swing.*;
public class JTextAreaTextBoldTest extends JFrame {
   private JTextArea textArea;
   public JTextAreaTextBoldTest() {
      setTitle("JTextAreaTextBold Test");
      setLayout(new BorderLayout());
      textArea= new JTextArea();
      textArea.setLineWrap(true);
      textArea.setWrapStyleWord(true);
      Font boldFont=new Font(textArea.getFont().getName(), Font.BOLD, textArea.getFont().getSize());
      textArea.setFont(boldFont); // 굵은 텍스트 적용
      add(textArea);
      setSize(375, 250);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setLocationRelativeTo(null);
      setVisible(true);
   }
   public static void main(String[]args) {
      new JTextAreaTextBoldTest();
   }
}

코드 설명

위 예제에서 핵심은 다음 두 줄입니다.
먼저 textArea.getFont()로 현재 적용된 글꼴 정보를 가져온 후, 글꼴 이름(getFont().getName())과 크기(getFont().getSize())는 그대로 유지하고 스타일만 Font.BOLD로 지정하여 새로운 Font 객체를 생성합니다.
이후 setFont() 메서드를 호출하면 JTextArea의 전체 텍스트에 굵은 글씨가 일괄 적용됩니다.

참고로 setLineWrap(true)setWrapStyleWord(true)는 텍스트가 컴포넌트 너비를 초과할 때 단어 단위로 자동 줄바꿈되도록 설정하는 옵션입니다.

실행 결과

Java Swing JTextArea에서 텍스트를 굵게(Bold) 표시하는 방법

위와 같이 실행하면 JTextArea에 입력되는 모든 텍스트가 굵은 글씨체로 표시됩니다. 만약 텍스트의 일부분만 선택적으로 굵게 표시하고 싶다면, JTextArea 대신 JTextPane이나 JEditorPane을 사용하고 StyledDocument로 스타일을 지정하는 방식을 권장합니다.