如何更改Java程序的默认字体?

时间:2008-01-16 12:58:00  来源:  作者:

用JBuild9.0写的程序默认的字体都是11号字体,有点小,我想更改成大一点的字体,每个控件都调用SetFont()太麻烦了,如何更改默认的字体大小呢?



 sakulagi 回复于:2004-09-14 20:38:37

如果是用Swing的话,参考一下这个:
http://www.rgagnon.com/javadetails/java-0335.html


 Hotown 回复于:2004-09-15 08:43:33

这是一个类的static函数吗?应该怎么调用啊?在哪调用啊?麻烦您给指点一下,谢谢了!


 sakulagi 回复于:2004-09-15 10:20:09


public static void setUIFont (javax.swing.plaf.FontUIResource f){
    //
    // sets the default font for all Swing components.
    // ex. 
    //  setUIFont (new javax.swing.plaf.FontUIResource("Serif",Font.ITALIC,12));
    //
    java.util.Enumeration keys = UIManager.getDefaults().keys();
    while (keys.hasMoreElements()) {
      Object key = keys.nextElement();
      Object value = UIManager.get (key);
      if (value instanceof javax.swing.plaf.FontUIResource)
        UIManager.put (key, f);
      }
    }    

这个方法你可以写在任何一个类里。在构造用户界面之前调用一下就行。


 Hotown 回复于:2004-09-17 16:47:00

如果我在一个Frame的构造函数里调用该函数能改变该Frame内所有控件的默认字体大小吗?
我试了一下,怎么改变不了啊?


 sakulagi 回复于:2004-09-17 20:50:15

可以试一下这个程序:

import java.awt.Font;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.UIManager;
import javax.swing.plaf.FontUIResource;

public class DefaultFontTest {
public static void setUIFont(javax.swing.plaf.FontUIResource f) {
//
// sets the default font for all Swing components.
// ex.
//  setUIFont (new
// javax.swing.plaf.FontUIResource("Serif",Font.ITALIC,12));
//
java.util.Enumeration keys = UIManager.getDefaults().keys();
while (keys.hasMoreElements()) {
Object key = keys.nextElement();
Object value = UIManager.get(key);
if (value instanceof javax.swing.plaf.FontUIResource)
UIManager.put(key, f);
}
}

public static void main(String[] args) {
setUIFont(new FontUIResource("Comic Sans MS", Font.BOLD, 20));
JFrame jf = new JFrame("DefaultFontTest");
JLabel jl = new JLabel("The font of this line should have been changed");
jf.getContentPane().add(jl);
jf.setSize(500, 100);
jf.show();
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}



 Hotown 回复于:2004-09-20 12:40:30

可以了,非常感谢!谢谢!
如果想更改用 JOptionPane.ShowMessageDialog() 弹出的对话框内的字体的话,改怎么改呢?谢谢!


 Hotown 回复于:2004-09-20 12:41:52

您知道怎么给一个Frame添加背景图片吗?
谢谢了!


 sakulagi 回复于:2004-09-20 14:55:41

引用:原帖由 "Hotown" 发表:
可以了,非常感谢!谢谢!
如果想更改用 JOptionPane.ShowMessageDialog() 弹出的对话框内的字体的话,改怎么改呢?谢谢!

理论上所有的字体都已经改变了。你可以试验一下


 sakulagi 回复于:2004-09-20 15:13:20

http://www.codecomments.com/Java_GUI/message267822.html
关于设置背景,你可以参考一下这个程序。


 Hotown 回复于:2004-09-21 07:53:10

好的,谢谢!




原文链接:http://bbs.chinaunix.net/viewthread.php?tid=407001
转载请注明作者名及原文出处


文章评论

共有 位网友发表了评论 查看完整内容