如何用CreateFont创建制定点大小的字符
import java.awt.Font;
import java.io.File;
import java.io.FileInputStream;
public class Loadfont
public static Font loadFont(String fontFileName, float fontSize) //第一个参数是外部字体名,第二个是字体大小
File file = new File(fontFileName);
FileInputStream aixing = new FileInputStream(file);
Font dynamicFont = Font.createFont(Font.TRUETYPE_FONT, aixing);
Font dynamicFontPt = dynamicFont.deriveFont(fontSize);
aixing.close();
return dynamicFontPt;
catch(Exception e)//异常处理
e.printStackTrace();
return new java.awt.Font("宋体", Font.PLAIN, 14);
public static java.awt.Font Font(){
String root=System.getProperty("user.dir");//项目根目录路径
Font font = Loadfont.loadFont(root+"/data/PRISTINA.ttf", 18f);//调用
return font;//返回字体
public static java.awt.Font Font2(){
String root=System.getProperty("user.dir");//项目根目录路径
Font font = Loadfont.loadFont(root+"/data/XXXX.ttf", 18f);
return font;//返回字体
2.转换:
public static String ascii2native(String ascii) {
int n = ascii.length() / 6;
StringBuilder sb = new StringBuilder(n);
for (int i = 0, j = 2; i < n; i++, j += 6) {
String code = ascii.substring(j, j + 4);
char ch = (char) Integer.parseInt(code, 16);
sb.append(ch);
return sb.toString();
}您电脑里面缺少这个字体 您可以
1 安装这个字体: trebuchet ms
2 修改出现问题的皮肤 在ini配置文件里面把所有的trebuchet ms都改为您电脑理念已经有的字体
求教MFC中CreateFont和CreateFontIndirect有什么区别?
BOOL CreateFont( int nHeight, int nWidth, int nEscapement, int nOrientation, int nWeight, BYTE bItalic, BYTE bUnderline, BYTE cStrikeOut, BYTE nCharSet, BYTE nOutPrecision, BYTE nClipPrecision, BYTE nQuality, BYTE nPitchAndFamily, LPCTSTR lpszFacename );
BOOL CreateFontIndirect(const LOGFONT* lpLogFont );
一个用结构体,一个不用。
主要是有时候你可以得到 LOGFONT* lpLogFont 就不需要输入那么多参数
比如用CFontDialog
它的成员变量CHOOSEFONT m_cf里有LPLOGFONTlpLogFont;无法创建字体想象的字体