Java.awt.Font 类

java.awt.Font


构造方法:


1.protected Font(Font font)

    根据指定 font 创建一个新 Font。

参数:

font - 用来创建新 Font 的字体。

抛出异常:

NullPointerException - font 为空时


2.protected Font(Map<? extends AttributedCharacterIterator.Attribute,?> attributes)

创建一个具有指定属性的新 Font。只有 TextAttribute 中定义的键被识别。此外,FONT 属性也没有被此构造方法识别(请参阅 getAvailableAttributes())。只有具有有效类型值的属性会影响新的 Font。如果 attributes 为 null,则使用默认值初始化新 Font。

参数:

attributes - 分配给新 Font 的属性,或 null。


3.protected Font(string name, int style, int size)

根据指定名称、样式和磅值大小,创建一个新 Font

参数:

name - 字体名称。可以为字体外观名称或者字体系列名称,例如 "Times New Roman","Arial Italic","等线" 等,字体样式区分大小写。

    当字体名称中加入字体样式时,应当注意和参数字体样式组合的结果。当两者不互相矛盾时,最终显示效果为两者叠加的效果,例如 name = "Arial Italic"和 style = "Font.BOLD" 组合的显示效果为即是斜体又是粗体的效果,与 name = "Arial Bold Italic" 或者 style = "Font.BOLD + Font.ITALIC" 的效果相同。当两者相同时,例如 "Arial BOLD" 和 "Font.BOLD" 的组合效果并不会双倍加粗字体,斜体同理。当两者相互矛盾时,即 "Arial Bold" 和 "Font.PLAIN" 同时使用时,显示效果为加粗。

    如果无法找到所要求的字体的样式,则字体系统可以通过相应的算法实现所要求的样式,例如要求倾斜,但相应字体没有可用的斜体外观,则会调用相关算法使字体倾斜。

    如果无法找到要求的字体名称,则会使用默认字体,并且通过 getFontName() 得到的字体名称为 "Dialog.plain/Dialog.bold/Dialog.italic/Dialog.bolditalic", 通过 getFamily() 得到的是 "Dialog"。

style - 字体样式。常用的值为 Font.PLAIN, Font.BOLD, Font.ITALIC 三者的任意结合,用运算符连接,通常为加号,三者的值分别为 0, 1, 2, 组合后按运算出的值对应显示效果,结果为 3 时则是加粗加斜的字体,也可以直接给出字体样式相应的数字值对字体样式进行设置,当数值没有对应的字体样式时,显示效果为普通样式,即 Font.PLAIN.

size - Font 的磅值大小。


常用的常量字段值:

public static final int PLAIN == 0;

public static final int BOLD == 1;

public static final int ITALIC == 2;

public static final String DIALOG == "Dialog";

public static final String DIALOG_INPUT == "DialogInput";


常用的方法:

String getFamily() - 返回此字体系列的名称,添加参数 "Locale l" 针对语言环境进行优化。

String getFontName() - 返回此字体外观的名称,添加参数 "Locale l" 针对语言环境进行优化。

String getName() - 返回此字体的逻辑名称,注意此名称为字体的逻辑名称,即新建字体时第一个参数,即使计算机中无法找到此字体,该函数返回的依然是参数中指定的字体名称,也就是说,该函数返回的是新建字体时第一个参数的字符串值,即使字体名称中指定了字体系列的样式时,也会原封不动地返回。

int getSize() - 整数型式返回该字体磅值的大小。

float getSize2D() - 浮点数形式返回该字体磅值的大小。

int getStyle() - 返回此字体的样式,返回的整数与字体样式的对应关系见上文。

boolean isBold() - 返回此字体的样式是否为粗体,粗斜体时为真。

boolean isItalic() - 返回此字体的样式是狗为斜体,粗斜体时为真。

boolean isPlain() - 返回此字体的样式是否为普通。

String toString() - 将此 Font 对象转换为字符串。转换具体结果见下文中的示例。


代码示例:

import java.awt.Container;
import java.awt.Font;
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class FontDemo extends JFrame
{
	private JLabel labels[];
	private String names[] = {"getFamily:","getFontName:","getName:",
			"getSize:","getSize2D:","getStyle:","isBold:","isItalic:",
			"isPlain:","toString:"};
	public FontDemo()
	{
		super("FontDemo");
		Font font = new Font("Times New Roman Italic", Font.BOLD, 30);	//新建一个 Font 对象
		Container container = getContentPane();
		container.setLayout(new GridLayout(10,2,10,10));
		labels = new JLabel[20];
		for(int count = 0; count < 10; count++)
		{
			labels[count*2] = new JLabel(names[count]);
		}
		labels[1] = new JLabel(font.getFamily());		//10个常用方法的结果
		labels[3] = new JLabel(font.getFontName());
		labels[5] = new JLabel(font.getName());
		labels[7] = new JLabel("" + font.getSize());
		labels[9] = new JLabel("" + font.getSize2D());
		labels[11] = new JLabel("" + font.getStyle());
		labels[13] = new JLabel("" + font.isBold());
		labels[15] = new JLabel("" + font.isItalic());
		labels[17] = new JLabel("" + font.isPlain());
		labels[19] = new JLabel(font.toString());
		for(int count = 0; count < 20; count++)
		{
			labels[count].setFont(font);				//将文本设置为该字体
			container.add(labels[count]);
		}
		setVisible(true);
		setSize(800,600);
	}
	public static void main(String[] args)
	{
		FontDemo application = new FontDemo();
		application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}

运行结果:


最后一行 toString() 的完整表达为:


Java中,`java.awt.Font`用于表示字体。自定义TTc字体通常指的是TrueType Collection字体,即包含多个字体的单一文件。使用`java.awt.Font`来操作这字体,可以通过以下方式进行: 1. 使用`Font.createFont()`方法创建字体实例。这个方法接受一个输入流和一个布尔值,表示是否进行字体平滑处理。对于TTc字体,你需要从文件中读取流。 ```java FileInputStream fontStream = new FileInputStream("path/to/your/fontcollection.ttc"); Font ttcFont = Font.createFont(Font.TRUETYPE_FONT, fontStream); ``` 2. 如果你只想要字体集合中的特定字体,可以通过字体名称获取。TTc字体可以包含多个字体家族,每个字体家族中可能有多种样式(如常规、粗体、斜体等)。可以通过遍历并根据名称来确定所需的字体。 ```java Map map = ttcFont.getAvailableFontFamilyNames(); for (String familyName : map) { if (familyName.equals("YourDesiredFontFamilyName")) { ttcFont = ttcFont.deriveFont(Font.PLAIN); // 获取一个基本样式版本的字体 } } ``` 3. 使用`deriveFont`方法来获得特定样式的字体。字体样式包括`Font.PLAIN`, `Font.BOLD`, `Font.ITALIC`等,而`deriveFont`方法允许你创建具有特定样式的字体副本。 ```java Font derivedFont = ttcFont.deriveFont(Font.BOLD | Font.ITALIC); ``` 4. 最后,如果要使用这个字体,需要将其注册到当前图形环境。 ```java GraphicsEnvironment genv = GraphicsEnvironment.getLocalGraphicsEnvironment(); genv.registerFont(derivedFont); // 现在可以在程序中使用这个字体 ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值