你指的是SWING和AWT的各个组件的Font吧~用UIManager例:
   Font f = new Font("宋体", Font.PLAIN, 12);
UIManager.put("OptionPane.font", f);
UIManager.put("Menu.font", f);
UIManager.put("MenuItem.font", f);
UIManager.put("Label.font", f);
UIManager.put("CheckBox.font", f);
UIManager.put("RadioButton.font", f);
UIManager.put("TableHeader.font", f);
UIManager.put("TextField.font", f);
UIManager.put("TextArea.font", f);
UIManager.put("Button.font", f);
UIManager.put("ComboBox.font", f);
UIManager.put("OptionPane.buttonFont", f);
UIManager.put("ToolTip.font", f);
UIManager.put("TabbedPane.font", f);
UIManager.put("CheckBoxMenuItem.font", f);

解决方案 »

  1.   

    能改部分,比如UIManager.put("ToolTip.font", f);
    其他的似乎不管用,如UIManager.put("MenuItem.font", f);。还有,再打开一个新窗口,那第一次打开这个frame时,不管用,
    再打开后,才有用的。
    而且,UIManager.put("ComboBox.font", f);,无论第几次打开窗口,都没有。
      

  2.   

    上面那个有几个组件是没经过测试的,我是打开的JAR包下面的class文件找的这个
      

  3.   

    对了,你在程序中修改的东西是对每个组件setFont还是覆写的组件类~
      

  4.   

    现在,是对每个组件,都一一setfont,这样勉强可以。但是弹出的message dialog 的字体,还是老样子的。
      

  5.   

    用这个:
    Font myFont = new Font("ËÎÌå", Font.PLAIN, 12);
    FontUIResource fontRes = new  FontUIResource(myFont);
    java.util.Enumeration keys = UIManager.getDefaults().keys();
             while (keys.hasMoreElements()) 
    {   
       int a =0;
                Object key = keys.nextElement();
                Object value = UIManager.get (key);
                if (value instanceof javax.swing.plaf.FontUIResource)
    UIManager.put (key, fontRes);

             }