• e652. Getting the Font Faces for a Font Family


    To create a Font object to draw text, it is necessary to specify the font face name. This example demonstrates how to retrieve all the font face names from a font family name. Unfortunately, the method is somewhat inefficient since it involves creating one-point size Font objects for every available font in the system. The example caches all the information by 建立一个散列表 that maps a font family name to an array of font face names.

    See also e651 列出所有可用字体. Note: J2SE 1.4 only support True Type fonts.

        Map fontFaceNames = new HashMap();
        
        // Get all available font faces names
        GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
        Font[] fonts = ge.getAllFonts();
        
        // Process each font
        for (int i=0; i<fonts.length; i++) {
            // Get font's family and face
            String familyName = fonts[i].getFamily();
            String faceName = fonts[i].getName();
        
            // Add font to table
            java.util.List list = (java.util.List)fontFaceNames.get(familyName);
            if (list == null) {
                list = new ArrayList();
                fontFaceNames.put(familyName, list);
        
            }
            list.add(faceName);
        }
        
        // Replace the face name lists with string arrays,
        // which are more compact and convenient to use
        for (Iterator it=fontFaceNames.keySet().iterator(); it.hasNext(); ) {
            String familyName = (String)it.next();
            java.util.List list = (java.util.List)fontFaceNames.get(familyName);
            fontFaceNames.put(familyName, list.toArray(new String[list.size()]));
        }
        
        
        // Use the table
        String[] faces = (String[])fontFaceNames.get("Verdana");
    
    Related Examples
  • 相关阅读:
    angular 中如何使用自定义组件
    angular组件数据和事件
    angular组件数据
    angular绑定数据
    angular自定义组件
    angular项目目录结构分析
    Angular 开发工具介绍
    从Microsoft.AspNet.Identity看微软推荐的一种MVC的分层架构
    EF How to use context.Set and context.Entry, which ships with EF4.1 ?
    C# 向IQueryable添加一个Include扩展方法
  • 原文地址:https://www.cnblogs.com/borter/p/9575444.html
Copyright © 2020-2023  润新知