在不使用 HTML 的情况下在 JOptionPane 中设置字体

Setting font in JOptionPane without using HTML

我试过这个:Code Zip

很抱歉给您带来不便,但我无法附上整个代码(虽然它不是太大)并且无法提供。java 扩展名 link 所以您必须获取 zip 并打开它在 html 中,其中代码带有语法高亮显示。

我读了这些:

但是我不想用HTML。

代码

public static void main(String argv[]) {
    JFrame jf;
    jf = new JFrame();
    JPanel jp = new JPanel();
    jf.setBounds(100, 100, 530, 350);
    jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    jf.getContentPane().setLayout(null);
    jp.setFont(new Font("Algerian", Font.ITALIC, 11));
    jf.add(jp);
    String message = "Hello World!”;
    JOptionPane jop;
    jop = new JOptionPane();
    Object[] obj = { UIManager.put("Panel.font",new Font("Algerian", Font.ITALIC, 11)) , message };
    JOptionPane.showMessageDialog(jp,obj,"Dialog",JOptionPane.NO_OPTION);
  }

此 MCVE 在 3 个选项窗格中显示一个标签,其中包含相同(默认)字体的 3 种不同变体。只需向选项窗格传递一个设置了字体的组件,而不是字符串或通用对象。

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

public class FontInOptionPane {

    FontInOptionPane() {
        JLabel l = new JLabel();
        Font f = l.getFont();
        l.setText(f.toString());

        JOptionPane.showMessageDialog(null, l);

        f = f.deriveFont(Font.ITALIC);
        l.setText(f.toString());
        l.setFont(f);
        JOptionPane.showMessageDialog(null, l);

        f = f.deriveFont(50f);
        l.setText(f.toString());
        l.setFont(f);
        JOptionPane.showMessageDialog(null, l);
    }

    public static void main(String[] args) {
        Runnable r = new Runnable() {
            @Override
            public void run() {
                new FontInOptionPane();
            }
        };
        SwingUtilities.invokeLater(r);
    }
}

在 Java Swing 中,您可以使用以下代码行全局设置 JOptionPane 字体:

UIManager.put("OptionPane.messageFont", new Font("Arial", Font.PLAIN, 15));
UIManager.put("OptionPane.buttonFont", new Font("Arial", Font.PLAIN, 18));

这很有魅力。