现在的位置: 首页 > 综合 > 正文

java程序中中更改字体的属性

2016年09月27日 ⁄ 综合 ⁄ 共 1430字 ⁄ 字号 评论关闭

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);

	}

抱歉!评论已关闭.