迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

在 Java 中使用 setFont

作者:迹忆客 最近更新:2023/09/17 浏览次数:

在本文中,我们将学习如何使用从 javax.swing.JFrame 类中的 java.awt.Container 继承的 setFont() 方法。顾名思义,该函数将字体设置为 JFrame 的组件。


在 JFrame 中使用 setFont() 设置新字体

在这个例子中,我们为 JFrame 组件设置了一种新字体。

首先,我们创建一个 JFrame 对象和两个 JLabel 类型的标签。我们用它们的文本初始化标签。

现在我们创建一个名为 myFont1Font 对象,在构造函数中,我们传递三个参数,第一个是我们要设置的字体,第二个是可以使用 Font 类调用的字体样式,以及最后一个参数是 int 类型值的字体大小。

我们创建另一个 Font 对象,myFont2,并为它设置一个不同的字体值。我们使用 JLabel 对象调用 setFont() 函数并将 Font 对象传递给它们。

之后,我们使用 setBounds() 函数设置组件的位置和大小,并使用 add() 将它们添加到 JFrame。最后,我们设置 JFrame 的大小和可见性。

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

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);

    }
}

输出:

Java setFont


使用 setFont()getFont().deriveFont() 在现有字体中设置样式

在前面的示例中,我们看到了如何使用 setFont() 设置新字体,但我们也可以使用此方法为 JFrame 组件的现有字体设置新样式。

为此,我们首先使用 component.getFont() 获取组件的字体,然后调用接受我们想要应用的样式的 deriveFont() 函数。我们通过 Font.ITALIC 使 JLabel 上的字体变为斜体。

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

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);

    }
}

输出:

Java setFont


使用 setFont()Font.createFont() 设置自定义字体

在这个例子中,我们设置了一个自定义字体,这与我们已经在类中设置字体的第一个程序不同。

为了获取自定义字体,我们下载它并将其存储在我们项目目录的根目录中。我们在这个例子中使用 oswald.ttf 字体文件。

我们创建一个 JLabel 并初始化它以获取我们称为 BufferedInputStream 的字体文件,并传递一个 FileInputStream 的对象,该对象将字体文件的路径作为参数。现在我们得到了一个 InputStream 对象。

要创建新字体,我们从 Font 类调用 createFont(),并将字体资源类型作为第一个参数传递,将 InputStream 作为第二个参数传递。我们使用 deriveFont() 方法将自定义字体设置为 JLabel 组件。

毕竟,现在我们将组件添加到 JFrame。输出显示自定义字体。

package sample;

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

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);

    }
}

输出:

Java setFont

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Java 中的 JFileChooser 示例

发布时间:2023/09/22 浏览次数:67 分类:Java

本文展示了 Java 中的 jfilechooser 示例。JFileChooser 为我们提供了一个窗口或提示,我们可以使用它来选择文件或文件夹。它是 Swing 包的一部分。

JavaFX 与 Swing

发布时间:2023/09/22 浏览次数:164 分类:Java

本文介绍了 JavaFX 和 Swing 之间的区别。JavaFX 是一个 Web 平台,可帮助开发人员为 Web、移动和桌面应用程序开发现代用户界面。

JavaFX 文本旋转

发布时间:2023/09/21 浏览次数:97 分类:Java

本介绍了如何在 JavaFX 中旋转文本。可以使用 JavaFX.scene.text.Text 类创建文本节点,并在 JavaFX 中使用 setRotate() 来旋转文本。本文介绍了如何在 JavaFX 中旋转文本。

JavaFX 区域与窗格

发布时间:2023/09/21 浏览次数:94 分类:Java

本文介绍了 JavaFX 中区域和窗格之间的区别。Region 和 Pane 用于将可调整大小的子节点调整到它们的首选大小,而不是重新定位它们。本文介绍了 JavaFX 中 Region 和 Pane 之间的区别。

JavaFX 媒体播放器

发布时间:2023/09/21 浏览次数:115 分类:Java

本文演示了 JavaFX 媒体播放器的正确使用,使用 JavaFX 播放媒体文件。在本文中,我们将学习如何使用 JavaFX 在 Java 中制作媒体播放器。为此,我们将使用内置的 JavaFX 并手动进行设置。

JavaFX 方形按钮

发布时间:2023/09/21 浏览次数:126 分类:Java

本文介绍如何在 JavaFX 中创建方形按钮。可以通过扩展 Java 中的 ToolBar 类来创建方形按钮。本文介绍了如何在 JavaFX 中创建方形按钮。

JavaFX setFill() 方法

发布时间:2023/09/21 浏览次数:187 分类:Java

本教程演示了如何在 JavaFX 中使用 setFill() 方法。setFill() 方法用于在 JavaFX 中填充形状和其他元素的颜色。本教程演示了在 JavaFX 中使用 setFill() 方法。

JavaFX FXML 加载异常的解决方法

发布时间:2023/09/21 浏览次数:192 分类:Java

本文展示了如何解决 JavaFX FXML 加载异常。这也突出了导致此异常的原因。本文介绍导致 JavaFX FXML 加载异常的原因并提供快速解决方案。导致 JavaFX FXML 加载异常的原因 获得 JavaFX FXML 加载异常的

Java 将文本复制到剪贴板

发布时间:2023/09/21 浏览次数:96 分类:Java

本文讨论将文本从 Java 应用程序复制到剪贴板的方法。本文讨论将文本从 Java 应用程序复制到剪贴板。Java 提供了几个元素来显示 Java 应用程序中的文本。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便