2011-11-30 87 views
5

我有一些自定义组件与覆盖paintComponent(Graphics g)方法。在某些组件drawString()方法中使用Graphics g对象。 我想为这些绘制的字符串定义自定义字体。秋千创建字体

我有真正的字体定义的* .ttf文件。 我有风格类CSS文件,定义喜欢的字体:

.rosTexLogoTitle { 
    -fx-font: bold 20pt 'Tahoma Bold'; 
    -fx-text-fill: #246db6; 
    -fx-font-weight: heavybold; 
    -fx-padding: 0 10 0 0 

我想定义在我的Java类从CSS的所有属性也许没有必要的方式直接从CSS-文件使用样式( )。

我试图用地图参数的构造函数创建字体:

public Font(Map<? extends Attribute, ?> attributes) { 
} 

但是我没有成功。 我可以用Font.createFont(style, path)创建自定义字体,然后可以派生它来设置大小。颜色可以在Graphics.setColor()中设置。但我不能设置'Tahoma Bold'。

+0

您的问题是什么? –

+0

如何正确设置所有的字体属性(我有他们在CSS)。 从* .ttf创建字体,然后派生并设置大小,并将颜色设置为图形?如何设置字体重量?如何设置家庭?如何使用Font构造函数,它使用属性Map? 问题的另一部分是关于平滑这个文本,但我的意思是创建另一个问题MB? –

+0

当我问*“你的问题是什么?”*我的意思是一个**单一的问题,而不是其中的五个。选择你最喜欢的。 –

回答

2

您不能设置字体的粗细或家庭;这些只是用来选择正确的.ttf文件。

所以解决方案是使用正确的.ttf文件开始。例如,字体系列Arial有四个文件:

arialbd.ttf - Weight "Bold" 
arialbi.ttf - Weight "Bold", Slant "Italic" 
ariali.ttf - Slant "Italic" 
arial.ttf - Plain version 
1

您是否拥有.ttf文件?的createFont(样式,文件)返回一个新的字体,那么在哪里设置颜色

u可以使用sun.awt.Win32GraphicsEnvironment.getAvailableFontFamilyNames()获取所有操作系统的字体