zoukankan      html  css  js  c++  java
  • [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 }
  • 相关阅读:
    读《奇点临近》
    C++中rand()函数的用法
    第四届蓝桥杯 c/c++真题
    ACM做题过程中的一些小技巧
    树状数组
    go单元测试进阶篇
    浓缩的才是精华:浅析GIF格式图片的存储和压缩
    腾讯IVWEB团队:WebRTC 点对点直播
    Mongodb Geo2d索引原理
    Unity编译Android的原理解析和apk打包分析
  • 原文地址:https://www.cnblogs.com/zjutlitao/p/3554827.html
Copyright © 2011-2022 走看看