我在我的JAVA程序中将JMenuItem的字体设置了Dialog字体。可我在系统的字体文件夹下面找不到Dialog字体的字体文件。有一位朋友说Dialog字体是逻辑字体。逻辑字体这个概念我还是第一次听说,不太明白其中的意思。还请大家解释一下。因为我发现有些电脑上不支持Dialog字体

解决方案 »

  1.   

    Dialog应该是小写的dialog1.font.properties中所使用的属性名称:LogicalFontName - 五种逻辑字体之一: serif, sansserif, monospaced, dialog, dialoginput. 总是小写。以前所使用的那种 helvetica 和 zapfdingbats,已经被deprecated了。 
    StyleName - 四种字体风格之一: plain, bold, italic, bolditalic.  总是小写。 
    PlatformFontName - 物理字体名: 
    在Windows上, 用这种形式表示:"Courier New" or "\uad74\ub9bc".  "\uad74\ub9bc"查了一下是两个韩文字符。 
    在Solaris和Linux上, 用这种形式:"-monotype-times new roman-regular-r---*-%d-*-*-p-*-iso8859-1". 
    ComponentIndex - 同样逻辑字体和风格有几种表现形式。 
    WindowsCharsetName - 以下Windows字符集之一: ANSI_CHARSET, DEFAULT_CHARSET, SYMBOL_CHARSET, SHIFTJIS_CHARSET, GB2312_CHARSET, HANGEUL_CHARSET, CHINESEBIG5_CHARSET, OEM_CHARSET, JOHAB_CHARSET, HEBREW_CHARSET, ARABIC_CHARSET, GREEK_CHARSET, TURKISH_CHARSET, VIETNAMESE_CHARSET, THAI_CHARSET, EASTEUROPE_CHARSET, RUSSIAN_CHARSET, MAC_CHARSET, BALTIC_CHARSET. 
    2.但是在WindowsCharset里好像没有所需要的,在JDK1.5的文档中查到font configuration又增加了几种支持的WindowsCharsetName,也都是unicode字符集的子集,还要再研究一下,不知道哪种行。3.JDK1.5中WindowsCharset变为了CharacterSubsetName,包括For Windows和For Solaris and Linux不同的字符集。并且去除了ComponentIndex属性,新增了Encoding,Language,Country三个属性。
      

  2.   

    逻辑字体 是所有JVM必须实现的。OVER。所以检查大小写。
      

  3.   

    楼上的意思是因为大小写的原因?可我写了一个显示字体列表的程序:String fontNames[]=GraphicsEnvironment.getLocalGraphicsEnvironment().
                           getAvailableFontFamilyNames();
    for(int i=0;i<fontNames.length;i++)
    {
        System.out.println(fontNames[i]);
    }输出的结果怎么都是大写字母开头的:Bookman Old Style
    Century
    Century Gothic
    Comic Sans MS
    Courier New
    Dialog
    DialogInput
    Dotum
    DotumChe
    Estrangelo Edessa
    Franklin Gothic Medium...