zbz*_*vlv 31 java graphics fonts awt drawstring
如何使字体大小更大g.drawString("Hello World",10,10);?
Joh*_*now 61
g.setFont(new Font("TimesRoman", Font.PLAIN, fontSize));
Run Code Online (Sandbox Code Playgroud)
其中fontSize是一个int.drawString的API声明x和y参数是坐标,与文本的大小无关.
小智 15
因为您不能指望可用的特定字体,所以一种好的方法是从当前字体派生新字体.这给你相同的家庭,体重等等......
Font currentFont = g.getFont();
Font newFont = currentFont.deriveFont(currentFont.getSize() * 1.4F);
g.setFont(newFont);
Run Code Online (Sandbox Code Playgroud)
您还可以使用TextAttribute.
Map<TextAttribute, Object> attributes = new HashMap<>();
attributes.put(TextAttribute.FAMILY, currentFont.getFamily());
attributes.put(TextAttribute.WEIGHT, TextAttribute.WEIGHT_SEMIBOLD);
attributes.put(TextAttribute.SIZE, (int) (currentFont.getSize() * 1.4));
myFont = Font.getFont(attributes);
g.setFont(myFont);
Run Code Online (Sandbox Code Playgroud)
TextAttribute方法通常提供更大的灵活性.例如,您可以将权重设置为半粗体,如上例所示.
最后一个建议......因为监视器的分辨率可能不同并且随着技术的不断增加,所以请避免添加特定数量(例如getSize()+ 2或getSize()+ 4)并考虑相乘.这样,您的新字体始终与"当前"字体(getSize()*1.4)成比例,并且当您获得其中一个漂亮的4K显示器时,您将不会编辑代码.
小智 6
Font myFont = new Font ("Courier New", 1, 17);
Run Code Online (Sandbox Code Playgroud)
17 代表字体大小。一旦你有了它,你可以把:
g.setFont (myFont);
g.drawString ("Hello World", 10, 10);
Run Code Online (Sandbox Code Playgroud)
小智 5
代码示例如下:
g.setFont(new Font("TimesRoman", Font.PLAIN, 30));
g.drawString("Welcome to the Java Applet", 20 , 20);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
170268 次 |
| 最近记录: |