我写的代码如下,通过获得本地字体来设置画布上的字。但是获得的字体名称英文字体是正常的,中文字体的名称全是一个个方块,这是怎么回事,改如何解决呢?package javaapplication3;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;/**
 *
 * @author Administrator
 */
public class ShowFonts implements ItemListener {    JFrame f;
    MyCanvas mc;
    Choice ch;
    String fontName[];    public static void main(String argv[])
    {
        new ShowFonts();
    }
    public ShowFonts()
    {
        f = new JFrame("test");
        fontName = GraphicsEnvironment.getLocalGraphicsEnvironment().
                                            getAvailableFontFamilyNames();
        ch = new Choice();
        ch.addItemListener(this);
        for(int i=0;i<fontName.length;i++)
             ch.addItem(fontName[i]);        mc = new MyCanvas(fontName[0]);
        f.add(ch,BorderLayout.NORTH);
        f.add(mc,BorderLayout.CENTER);
        f.pack();
        f.setVisible(true);
    }    public void itemStateChanged(ItemEvent e){
        mc.setFontName(ch.getSelectedItem());
        mc.repaint();
    }    class MyCanvas extends Canvas
    {
        String fontName;        public MyCanvas(String name)
        {
            fontName = name;
            setSize(480,272);        }        public void setFontName(String name)
        {
            fontName = name;
        }
        public void paint(Graphics g)
        {
            g.setFont(new Font(fontName,Font.PLAIN,36));
            g.drawString("ABC", 50, 50);
        }
    }}