在 Java 中使用 setFont

在本文中,我们将学习如何使用从 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

在 Java 中使用 \s

本教程将讨论和演示 Java 中 \\s 的使用。

在 Java 中使用 \s 作为正则表达式

\\s 是 Java 中用于空白字符的正则表达式。正则表达式是用于开发数据模式的字符序列。

当我们在文本中搜索数据时,有时我们会使用模式,而当需要空间时,在这些模式中会使用\\s

我们使用双反斜杠是因为 Java 语法不支持单反斜杠。实际上,单个空格字符的语法是\s

例子:

package delftstack;
public class Reg_Expression {
    public static final String Demo = "Hello! this is delftstack.com";
    public static void main(String[] args) {
        // Print the original String
        System.out.println("This is the Original String: ");
        System.out.println(Demo);
        // replace all \\s whitespaces with \t tabs
        System.out.println("This is the String \\s replaced with \\t: ");
        System.out.println(Demo.replaceAll("\\s", "\t"));
        //Split the string at \\s means the spaces
        String[] Demo_Split = (Demo.split("\\s"));
        System.out.println("This is the String split at \\s: ");
        for (String Print_String : Demo_Split) {
            System.out.println(Print_String);
        }
    }
}

上面的代码使用 \\s 操作字符串空格。首先,它用制表符替换空格并在空格处拆分字符串。

输出:

This is the Original String:
Hello! this is delftstack.com
This is the String \s replaced with \t:
Hello!	this	is	delftstack.com
This is the String split at \s:
Hello!
this
is
delftstack.com

在 jQuery 中使用 setTimeout()

在今天的文章中,我们将学习 jQuery 中的 setTimeout() 函数。

在 jQuery 中使用 setTimeout()

setTimeout() 方法设置一个计时器以在计时器到期后执行一个函数或目标代码。JavaScript 的 setTimeout() 函数会延迟该函数或另一个 JS 函数中的某些操作或代码执行。

此函数始终以毫秒为单位指定的时间延迟执行。

语法:

setTimeout(code, delay)
setTimeout(functionRef, delay, param1)
  1. functionRef 是一个将在计时器到期后完成的函数。
  2. code 是一种替代语法,它允许你插入字符串而不是在计时器到期时编译和执行的函数。不建议使用此语法,原因与使用 eval() 的安全威胁相同。
  3. delay 是一个可选参数,它指定计时器在完成所需功能或代码之前应等待的时间(以毫秒为单位)。如果省略此参数,则使用值 0,表示代码将立即执行。
  4. param1, ... , paramN 是一个可选参数。它指定传递给由 functionRef 定义的函数的额外参数。

setTimeout() 函数返回 timeoutID,它是一个正整数值;此值标识通过调用 setTimeout() 函数创建的计时器。要取消超时,你可以将此参数传递给 clearTimeout()

timeoutID 的值保证不会被随后对窗口或工作程序中的一个元素的 setTimeoutsetInterval 调用重用。但是,独一无二的项目使用单独的 ID 池。

这个函数不仅在本地 JavaScript 中使用,还可以在 jQuery 中使用 setTimeout()。要延迟运动,你可以在 jQuery 代码中使用 setTimeout() 函数。

让我们通过以下示例来理解它:

$(document).ready(function(){
  setTimeout(() => {
    alert("Welcome to DelftStack!");
  }, 2000);
});

在上面的示例中,我们使用 setTimeout() 以 2000 毫秒的间隔显示警报。

尝试在任何支持 jQuery 的浏览器中运行上述代码片段。它将显示如下所示的结果。

输出:

在 jQuery 中使用 setTimeout()

在此处查看演示。