[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 }

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值