java - 如何更改 JOptionPane.showInputDialog JTextField 中的字体?

标签 java swing fonts jtextfield joptionpane

我需要知道需要设置的 ui 管理器属性,以便为 JOptionPane.showInputDialog 窗口中的 JTextField 更改字体。

最佳答案

一个技巧是让确认对话框看起来像输入对话框。请注意,此示例与标准输入对话框的行为仍然不同,因为默认情况下未选择输入字段。为此,我一直在 Dialog Focus 上的这篇文章中找到提示。是无价的。

下图显示了标准输入对话框与使用大字体的确认对话框的对比。

Standard input dialog Big input dialog

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

class BigInputOptionPane {

    public static void main(String[] args) {
        Runnable r = new Runnable() {

            @Override
            public void run() {
                String s = JOptionPane.showInputDialog(null);
                if (s!=null) {
                    System.out.println("User chose: " + s);
                } else {
                    System.out.println("User did not chose an option!");
                }

                JTextField tf = new JTextField(8);
                tf.setFont(tf.getFont().deriveFont(26f));
                int result = JOptionPane.showConfirmDialog(
                        null, tf, "Input", 
                        JOptionPane.OK_CANCEL_OPTION);
                if (result==JOptionPane.OK_OPTION) {
                    System.out.println("User chose: " + tf.getText());
                } else {
                    System.out.println("User did not chose an option!");
                }
            }
        };
        SwingUtilities.invokeLater(r);
    }
}

关于java - 如何更改 JOptionPane.showInputDialog JTextField 中的字体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17059575/

相关文章:

java - Jersey 上 ResourceConfig 中的依赖关系问题

java - waitTermination 阻塞主线程

java - JFrame.dispose() 与 System.exit()

c++ - fontconfig 找不到字体

java - Mulesoft 3.8.1中的这个选择异常策略有问题吗?

java - 禁用遍历键时如何将焦点转移到自定义组件?

java - 如何以最短的方式对 JTable 进行排序?

java - 如何禁用 JXTable 默认搜索操作?

iphone - 是否有 Safari Mobile(即 iPad 和 iPhone)支持的字体列表?

python - 如何在我的 PySimpleGUI 桌面应用程序中使用 Google Fonts?