Java에서 setFont 사용하기
-
setFont()
를 사용하여 JFrame에서 새 글꼴 설정 -
setFont()
및getFont().deriveFont()
를 사용하여 기존 글꼴의 스타일 설정 -
setFont()
및Font.createFont()
를 사용하여 사용자 정의 글꼴 설정
이 기사에서는 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()
및 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()
및 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);
}
}
출력:
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에서 SwingUtilities.invokeLater() 사용
- 자바 페인트 구성 요소
- Java에서 JButton에 ActionListener 추가
- Java Swing을 사용하여 캔버스 만들기
- Java 일반 텍스트 필드
- Java Swing에서 JLabel 텍스트 변경