java修改JFrame默认字体方式

 更新时间:2021年11月12日 09:46:35   作者:sinolzeng  
这篇文章主要介绍了java修改JFrame默认字体方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

java修改JFrame默认字体

修改默认字体的方法很简单。首先我们随便写一个按钮出来:

import javax.swing.*; 
public class Test{
       static final int WIDTH = 300;
       static final int HEIGHT = 200;
       public static void main(String[] args){
             JFrame jf = new JFrame();
             jf.setVisible(true);
             jf.setSize(WIDTH,HEIGHT);
             jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
             JPanel jp = new JPanel();
             jf.setcontentPane(jp);
             JButton jb = new JButton("确定");
             jp.add(jb);
             jf.pack();
       }
}

接着我们可以加上这么一行:

UIManager.put("Button.font", new java.awt.Font("宋体", 0, 12));

开头的import加上:

import javax.swing.UIManager;

这样就可以改字体了。

字体类型和大小可以随便改,只要电脑里有安装就行了。“0”位置代表的是字体风格,一般不做修改。(如斜体、加粗等,要修改的话请自行查阅API……我也不太记得了。。)

不建议使用网上的个性字体,因为这样做出来的软件程序到别的电脑上用会产生字体方面的问题。而且尽量少用生僻字,以免某些字体库里没有收录对应的字形。

自定义的字体可以进行一下封装:(下面的部分摘自网络)

public class FontClass {
 public static void loadIndyFont() {
  UIManager.put("CheckBox.font", new java.awt.Font("宋体", 0, 12));
  UIManager.put("Tree.font", new java.awt.Font("宋体", 0, 12));
  UIManager.put("Viewport.font", new java.awt.Font("宋体", 0, 12));
  UIManager.put("ProgressBar.font", new java.awt.Font("宋体", 0, 12));
  UIManager.put("RadioButtonMenuItem.font", new java.awt.Font("宋体", 0, 12));
  UIManager.put("FormattedTextField.font", new java.awt.Font("宋体", 0, 12));
  UIManager.put("ToolBar.font", new java.awt.Font("宋体", 0, 12));
  UIManager.put("ColorChooser.font", new java.awt.Font("宋体", 0, 12));
  UIManager.put("ToggleButton.font", new java.awt.Font("宋体", 0, 12));
  UIManager.put("Panel.font", new java.awt.Font("宋体", 0, 12));
  UIManager.put("TextArea.font", new java.awt.Font("宋体", 0, 12));
  UIManager.put("Menu.font", new java.awt.Font("宋体", 0, 12));
  UIManager.put("RadioButtonMenuItem.acceleratorFont", new java.awt.Font("宋体", 0, 12));
  UIManager.put("Spinner.font", new java.awt.Font("宋体", 0, 12));
  UIManager.put("Menu.acceleratorFont", new java.awt.Font("宋体", 0, 12));
  UIManager.put("CheckBoxMenuItem.acceleratorFont", new java.awt.Font("宋体", 0, 12));
  UIManager.put("TableHeader.font", new java.awt.Font("宋体", 0, 12));
  UIManager.put("TextField.font", new java.awt.Font("宋体", 0, 12));
  UIManager.put("OptionPane.font", new java.awt.Font("宋体", 0, 12));
  UIManager.put("MenuBar.font", new java.awt.Font("宋体", 0, 12));
  UIManager.put("Button.font", new java.awt.Font("宋体", 0, 12));
  UIManager.put("Label.font", new java.awt.Font("宋体", 0, 12));
  UIManager.put("PasswordField.font", new java.awt.Font("宋体", 0, 12));
  UIManager.put("InternalFrame.titleFont", new java.awt.Font("宋体", 0, 12));
  UIManager.put("OptionPane.buttonFont", new java.awt.Font("宋体", 0, 12));
  UIManager.put("ScrollPane.font", new java.awt.Font("宋体", 0, 12));
  UIManager.put("MenuItem.font", new java.awt.Font("宋体", 0, 12));
  UIManager.put("ToolTip.font", new java.awt.Font("宋体", 0, 12));
  UIManager.put("List.font", new java.awt.Font("宋体", 0, 12));
  UIManager.put("OptionPane.messageFont", new java.awt.Font("宋体", 0, 12));
  UIManager.put("EditorPane.font", new java.awt.Font("宋体", 0, 12));
  UIManager.put("Table.font", new java.awt.Font("宋体", 0, 12));
  UIManager.put("TabbedPane.font", new java.awt.Font("宋体", 0, 12));
  UIManager.put("RadioButton.font", new java.awt.Font("宋体", 0, 12));
  UIManager.put("CheckBoxMenuItem.font", new java.awt.Font("宋体", 0, 12));
  UIManager.put("TextPane.font", new java.awt.Font("宋体", 0, 12));
  UIManager.put("PopupMenu.font", new java.awt.Font("宋体", 0, 12));
  UIManager.put("TitledBorder.font", new java.awt.Font("宋体", 0, 12));
  UIManager.put("ComboBox.font", new java.awt.Font("宋体", 0, 12));
 }

然后我们只需要在我们想要使用的时候,加上一句:

FontClass.loadIndyFont();

就行了~

JFrame基本参数设置

import java.io.IOException;
import java.awt.Font;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.JFrame;
import javax.swing.ImageIcon;
import javax.swing.UIManager;
import javax.imageio.ImageIO;
public class Frame implements WindowListener {
    public static JFrame frame;
    public Frame() {
        initialize();
    }
    
    private void initialize(){
        // 新建窗体
        frame = new JFrame();
        // 设置窗体自动调节大小
        frame.pack();
        // 设置窗体位置、大小
        frame.setBounds(100, 100, 100, 100);
        // 设置窗体是否可调节大小
        frame.setResizable(false);
        // 设置窗体布局
        frame.getContentPane().setLayout(null);
        // 设置窗体标题
        frame.setTitle("Frame");
        // 设置窗体字体
        frame.setFont(new Font("黑体", Font.PLAIN, 17));
        // 设置窗体在屏幕中央打开
        frame.setLocationRelativeTo(null);
        // 设置窗体默认关闭方式为退出程序
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        // 设置窗体图标
frame.setIconImage(ImageIO.read(this.getClass().getResource("/priv/image/image.png")));
        // 设置窗体观感(皮肤/主题)
    UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
        // 设置窗体是否可见
        frame.setVisible(true);
        // 添加 WindowListener
        frame.addWindowListener(this);
    }
    
    /**
     * @description 重写 WindowListener
     * @param e
     */
    public void windowClosing(WindowEvent e) {
    }
    public void windowClosed(WindowEvent e) {
    }
    public void windowOpened(WindowEvent e) {
    }
    public void windowIconified(WindowEvent e) {
    }
    public void windowDeiconified(WindowEvent e) {
    }
    public void windowActivated(WindowEvent e) {
    }
    public void windowDeactivated(WindowEvent e) {
    }
    
    public static void main(String args[]) {
        new Frame();
    }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • SpringBoot读取配置的6种方式

    SpringBoot读取配置的6种方式

    本文主要介绍了SpringBoot读取配置的6种方式,主要包括使用默认配置、使用application.properties文件、使用application.yml文件、使用@Value注解、使用Environment对象和使用ConfigurableEnvironment对象,感兴趣的可以了解一下
    2023-08-08
  • 详解Thymeleaf的三种循环遍历方式

    详解Thymeleaf的三种循环遍历方式

    Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。本文为大家总结了Thymeleaf的三种循环遍历方式,感兴趣的可以跟随小编一起学习一下
    2022-06-06
  • Java实现简单的五子棋小游戏

    Java实现简单的五子棋小游戏

    这篇文章主要为大家详细介绍了Java实现简单的五子棋小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-10-10
  • java Struts2框架下实现文件上传功能

    java Struts2框架下实现文件上传功能

    这篇文章主要为大家详细介绍了java Struts2框架下实现文件上传功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • java字节码框架ASM操作字节码的方法浅析

    java字节码框架ASM操作字节码的方法浅析

    这篇文章主要给大家介绍了关于java字节码框架ASM如何操作字节码的相关资料,文中通过示例代码介绍的很详细,有需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-01-01
  • 基于JAVA中的四种JSON解析方式详解

    基于JAVA中的四种JSON解析方式详解

    这篇文章主要介绍了基于JAVA中的四种JSON解析方式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • SpringBoot启动原理深入解析

    SpringBoot启动原理深入解析

    我们开发任何一个Spring Boot项目都会用到启动类,下面这篇文章主要给大家介绍了关于SpringBoot启动原理解析的相关资料,文中通过图文以及实例代码介绍的非常详细,需要的朋友可以参考下
    2023-04-04
  • Java基础之枚举Enum类案例详解

    Java基础之枚举Enum类案例详解

    这篇文章主要介绍了Java基础之枚举Enum类案例详解,文中有非常详细的代码示例,对正在学习java基础的小伙伴们有很好的帮助,需要的朋友可以参考下
    2021-05-05
  • java算法题解牛客BM99顺时针旋转矩阵示例

    java算法题解牛客BM99顺时针旋转矩阵示例

    这篇文章主要为大家介绍了java算法题解牛客BM99顺时针旋转矩阵示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • Java结合百度云存储BCS代码分享

    Java结合百度云存储BCS代码分享

    最近云是一个很热门的新概念,仿佛任何东西只要跟云相关联,就立马高大上起来,额,我们也追随潮流吧,项目中也结合一下云!!
    2014-10-10

最新评论