JAVA] java_实例 获得系统字体

简介:


[这个代码可以帮助理解java是如何获取系统字体并设置文字字体:

复制代码
 1 import java.awt.*;
 2 import java.awt.event.*;
 3 
 4 import javax.swing.JComboBox;
 5 import javax.swing.JFrame;
 6 import javax.swing.JLabel;
 7 
 8 public class GetSystemFont extends JFrame {
 9 
10     private JComboBox box;
11     private Container container;
12     private String str[];
13     private GraphicsEnvironment environment; // 该类中又获取系统字体的方法;
14     private JLabel tipLabel;
15 
16     public GetSystemFont() {
17         super("获取系统字体");
18         container = getContentPane();
19         tipLabel = new JLabel("系统字体有:");
20         container.add(tipLabel);
21 
22         environment = GraphicsEnvironment.getLocalGraphicsEnvironment();// GraphicsEnvironment是一个抽象类,不能实例化,只能用其中的静态方法获取一个实例
23         str = environment.getAvailableFontFamilyNames();// 获取系统字体
24 
25         box = new JComboBox(str);
26 
27         // 为box注册ItemListener监听器
28         box.addItemListener(new ItemListener() {
29             public void itemStateChanged(ItemEvent event) {
30                 if (event.getStateChange() == event.SELECTED) {
31                     int style = tipLabel.getFont().getStyle(); // 获取当前字体的类型
32                     int size = tipLabel.getFont().getSize();// 获取当前字体的大小
33                     tipLabel.setFont(new Font(str[box.getSelectedIndex()],
34                             style, size));// 改变tipLabel的字体,但不改变大小和类型
35                 }
36             }
37         });
38 
39         container.setLayout(new FlowLayout());
40         container.add(box);
41 
42         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
43         setVisible(true);
44         pack();
45         setResizable(false);
46 
47         // 使窗口屏幕居中
48         Toolkit kit = Toolkit.getDefaultToolkit();// 抽象类,通过静态方法获取实例
49         Dimension frameSize = new Dimension(), screenSize = kit.getScreenSize(); // 获取屏幕的大小
50         getSize(frameSize); // 获取窗口大小
51         setLocation((screenSize.width - frameSize.width) / 2,
52                 (screenSize.height - frameSize.height) / 2);
53     }
54 
55     public static void main(String[] args) {
56         GetSystemFont test = new GetSystemFont();
57     }
58 }
复制代码
相关文章
|
3天前
|
存储 Java 计算机视觉
Java二维数组的使用技巧与实例解析
本文详细介绍了Java中二维数组的使用方法
26 15
|
2月前
|
监控 Java API
如何使用Java语言快速开发一套智慧工地系统
使用Java开发智慧工地系统,采用Spring Cloud微服务架构和前后端分离设计,结合MySQL、MongoDB数据库及RESTful API,集成人脸识别、视频监控、设备与环境监测等功能模块,运用Spark/Flink处理大数据,ECharts/AntV G2实现数据可视化,确保系统安全与性能,采用敏捷开发模式,提供详尽文档与用户培训,支持云部署与容器化管理,快速构建高效、灵活的智慧工地解决方案。
|
3天前
|
缓存 Java 开发者
Java字面量详解:概念、分类与使用实例
本文介绍了Java字面量的概念、分类及应用。
28 11
|
8天前
|
存储 分布式计算 Hadoop
基于Java的Hadoop文件处理系统:高效分布式数据解析与存储
本文介绍了如何借鉴Hadoop的设计思想,使用Java实现其核心功能MapReduce,解决海量数据处理问题。通过类比图书馆管理系统,详细解释了Hadoop的两大组件:HDFS(分布式文件系统)和MapReduce(分布式计算模型)。具体实现了单词统计任务,并扩展支持CSV和JSON格式的数据解析。为了提升性能,引入了Combiner减少中间数据传输,以及自定义Partitioner解决数据倾斜问题。最后总结了Hadoop在大数据处理中的重要性,鼓励Java开发者学习Hadoop以拓展技术边界。
34 7
|
2月前
|
设计模式 消息中间件 搜索推荐
Java 设计模式——观察者模式:从优衣库不使用新疆棉事件看系统的动态响应
【11月更文挑战第17天】观察者模式是一种行为设计模式,定义了一对多的依赖关系,使多个观察者对象能直接监听并响应某一主题对象的状态变化。本文介绍了观察者模式的基本概念、商业系统中的应用实例,如优衣库事件中各相关方的动态响应,以及模式的优势和实际系统设计中的应用建议,包括事件驱动架构和消息队列的使用。
|
2月前
|
运维 自然语言处理 供应链
Java云HIS医院管理系统源码 病案管理、医保业务、门诊、住院、电子病历编辑器
通过门诊的申请,或者直接住院登记,通过”护士工作站“分配患者,完成后,进入医生患者列表,医生对应开具”长期医嘱“和”临时医嘱“,并在电子病历中,记录病情。病人出院时,停止长期医嘱,开具出院医嘱。进入出院审核,审核医嘱与住院通过后,病人结清缴费,完成出院。
149 4
|
2月前
|
Java 数据库连接 数据库
深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能
在Java应用开发中,数据库操作常成为性能瓶颈。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能。文章介绍了连接池的优势、选择和使用方法,以及优化配置的技巧。
58 1
|
2月前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
3月前
|
移动开发 前端开发 JavaScript
java家政系统成品源码的关键特点和技术应用
家政系统成品源码是已开发完成的家政服务管理软件,支持用户注册、登录、管理个人资料,家政人员信息管理,服务项目分类,订单与预约管理,支付集成,评价与反馈,地图定位等功能。适用于各种规模的家政服务公司,采用uniapp、SpringBoot、MySQL等技术栈,确保高效管理和优质用户体验。
|
3月前
|
Java
通过Java代码解释成员变量(实例变量)和局部变量的区别
本文通过一个Java示例,详细解释了成员变量(实例变量)和局部变量的区别。成员变量属于类的一部分,每个对象有独立的副本;局部变量则在方法或代码块内部声明,作用范围仅限于此。示例代码展示了如何在类中声明和使用这两种变量。

热门文章

最新文章