Java에서 setFont 사용하기

Rupam Yadav 2023년10월12일
  1. setFont()를 사용하여 JFrame에서 새 글꼴 설정
  2. setFont()getFont().deriveFont()를 사용하여 기존 글꼴의 스타일 설정
  3. setFont()Font.createFont()를 사용하여 사용자 정의 글꼴 설정
Java에서 setFont 사용하기

이 기사에서는 javax.swing.JFrame 클래스의 java.awt.Container에서 상속된 setFont() 메서드를 사용하는 방법을 배웁니다. 이름에서 알 수 있듯이 이 함수는 JFrame의 구성 요소에 글꼴을 설정합니다.

setFont()를 사용하여 JFrame에서 새 글꼴 설정

이 예제에서는 JFrame 구성 요소에 새 글꼴을 설정합니다.

먼저 JFrame 개체와 JLabel 유형의 두 레이블을 만듭니다. 레이블을 텍스트로 초기화합니다.

이제 myFont1이라는 Font 개체를 만들고 생성자에서 세 개의 인수를 전달합니다. 첫 번째는 설정하려는 글꼴이고 두 번째는 Font 클래스를 사용하여 호출할 수 있는 글꼴 스타일입니다. 마지막 인수는 int 유형 값인 글꼴 크기입니다.

또 다른 Font 개체 myFont2를 만들고 다른 글꼴 값을 전달하도록 설정합니다. JLabel 객체를 사용하여 setFont() 함수를 호출하고 Font 객체를 전달합니다.

그런 다음 setBounds() 함수를 사용하여 구성 요소의 위치와 크기를 설정하고 add()를 사용하여 JFrame에 추가합니다. 마지막으로 JFrame의 크기와 가시성을 설정했습니다.

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

public class Main {
  public static void main(String[] args) {
    JFrame jFrame = new JFrame("Set Font Example");
    JLabel jLabel1, jLabel2;

    jLabel1 = new JLabel("Label with Serif Font");
    jLabel2 = new JLabel("Label with Arial Font");

    Font myFont1 = new Font("Serif", Font.BOLD, 12);
    jLabel1.setFont(myFont1);

    Font myFont2 = new Font("Arial", Font.BOLD, 12);
    jLabel2.setFont(myFont2);

    jLabel1.setBounds(80, 100, 120, 30);
    jLabel2.setBounds(80, 80, 120, 30);

    jFrame.add(jLabel1);
    jFrame.add(jLabel2);
    jFrame.setSize(300, 300);

    jFrame.setLayout(null);
    jFrame.setVisible(true);
  }
}

출력:

자바 setFont

setFont()getFont().deriveFont()를 사용하여 기존 글꼴의 스타일 설정

이전 예제에서 setFont()를 사용하여 새 글꼴을 설정하는 방법을 보았지만 이 방법을 사용하여 JFrame 구성 요소의 기존 글꼴에 새 스타일을 설정할 수도 있습니다.

이를 달성하기 위해 먼저 component.getFont()를 사용하여 구성 요소의 글꼴을 가져오고 적용하려는 스타일을 허용하는 deriveFont() 함수를 호출합니다. Font.ITALIC를 전달하여 JLabel의 글꼴을 기울임꼴로 만듭니다.

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

public class Main {
  public static void main(String[] args) {
    JFrame f = new JFrame("Set Font Example");
    JLabel jLabel1;

    jLabel1 = new JLabel("Label with Italic Style");

    jLabel1.setFont(jLabel1.getFont().deriveFont(Font.ITALIC));
    jLabel1.setBounds(80, 100, 120, 30);

    f.add(jLabel1);
    f.setSize(300, 300);

    f.setLayout(null);
    f.setVisible(true);
  }
}

출력:

자바 setFont

setFont()Font.createFont()를 사용하여 사용자 정의 글꼴 설정

이 예제에서는 클래스에서 글꼴을 이미 설정한 첫 번째 프로그램과 달리 사용자 정의 글꼴을 설정합니다.

사용자 정의 글꼴을 얻으려면 다운로드하여 프로젝트 디렉토리의 루트에 저장합니다. 이 예에서는 oswald.ttf 글꼴 파일을 사용합니다.

JLabel을 생성하고 이를 초기화하여 BufferedInputStream이라는 글꼴 파일을 가져오고 글꼴 파일의 경로를 인수로 사용하는 FileInputStream 개체를 전달합니다. 이제 InputStream의 개체를 얻습니다.

새 글꼴을 생성하기 위해 Font 클래스에서 createFont()를 호출하고 글꼴 리소스 유형을 첫 번째 인수로 전달하고 InputStream을 두 번째 인수로 전달합니다. deriveFont() 메소드를 사용하여 JLabel 구성 요소에 사용자 정의 글꼴을 설정합니다.

모든 작업이 끝나면 이제 JFrame에 구성 요소를 추가합니다. 출력에 사용자 정의 글꼴이 표시됩니다.

package sample;

import java.awt.*;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.swing.*;

public class Main {
  public static void main(String[] args) {
    JFrame f = new JFrame("Set Font Example");
    JLabel jLabel;

    jLabel = new JLabel("Label with a Custom Font");

    try {
      InputStream inputStream = new BufferedInputStream(new FileInputStream("oswald.ttf"));

      Font font = Font.createFont(Font.TRUETYPE_FONT, inputStream);

      jLabel.setFont(font.deriveFont(Font.BOLD, 12f));

    } catch (FontFormatException | IOException e) {
      e.printStackTrace();
    }

    jLabel.setBounds(80, 100, 120, 30);

    f.add(jLabel);
    f.setSize(300, 300);

    f.setLayout(null);
    f.setVisible(true);
  }
}

출력:

자바 setFont

작가: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

관련 문장 - Java Swing

관련 문장 - Java JLabel