【问题标题】:Setting font in JOptionPane without using HTML在 JOptionPane 中设置字体而不使用 HTML
【发布时间】:2015-06-17 17:41:19
【问题描述】:

我试过这个:Code Zip

很抱歉给您带来不便,但我无法附上整个代码(虽然它不是太大),也无法提供 .java 扩展名链接,因此您必须获取 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);
  }

【问题讨论】:

  • 您的帖子可以使用一些格式改进,以及您附加代码的奇怪方法。请复制并粘贴您的相关代码。
  • "但是我不能附上整个代码(虽然它不是太大)" 论坛将允许 700+ 行代码,是的,也是大。 为了尽快获得更好的帮助,请发布MCVE(最小完整可验证示例)或SSCCE(简短、自包含、正确示例)。
  • 我想我现在明白了。

标签: java swing fonts joptionpane


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    这就像一个魅力。

    【讨论】:

      猜你喜欢
      • 2017-10-04
      • 1970-01-01
      • 2014-05-29
      • 2016-01-02
      • 1970-01-01
      • 1970-01-01
      • 2013-01-26
      • 2013-03-07
      • 1970-01-01
      相关资源
      最近更新 更多