java修改JFrame默认字体方式

作者:sinolzeng 时间:2022-11-16 14:02:50 

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

来源:https://blog.csdn.net/sinolzeng/article/details/41282725

标签:java,JFrame,默认字体
0
投稿

猜你喜欢

  • Java注解(annotation)简述

    2022-03-07 08:10:12
  • C#简单获取全屏中鼠标焦点位置坐标的方法示例

    2023-09-14 16:18:04
  • SharedPreference 初始化源码解析

    2023-11-13 07:00:43
  • MyBatis持久层框架的用法知识小结

    2022-05-21 17:12:55
  • 如何使用C#代码创建快捷方式文件详解

    2022-03-02 01:13:42
  • 自定义一个异常类模板的简单实例

    2022-04-30 02:53:14
  • Java Lambda表达式入门示例

    2022-03-19 00:15:47
  • Android串口通讯SerialPort的使用详情

    2022-03-08 00:23:46
  • Java如何实现Word文档分栏效果

    2023-09-11 00:28:53
  • 深入了解Java虚拟机栈以及内存模型

    2022-02-17 13:37:50
  • Winform让DataGridView左侧显示图片

    2021-09-24 03:50:38
  • WinForm实现的图片拖拽与缩放功能示例

    2021-06-18 09:17:26
  • Android 自动补全提示输入AutoCompleteTextView、 MultiAutoCompleteTextView

    2022-12-30 12:18:05
  • Java EE项目中的异常处理总结(一篇不得不看的文章)

    2023-06-16 23:35:26
  • mybatisPlus返回Map类型的集合

    2022-01-31 13:37:07
  • Android基础控件RadioGroup使用方法详解

    2022-08-05 17:43:31
  • Android编程下拉菜单spinner用法小结(附2则示例)

    2022-11-02 20:25:45
  • Android webview和js互相调用实现方法

    2022-06-03 13:11:59
  • WPF+ASP.NET SignalR实现动态折线图的绘制

    2021-11-28 08:13:43
  • SVN报错:Error Updating changes:svn:E155037的解决方案

    2023-06-11 07:27:11
  • asp之家 软件编程 m.aspxhome.com