我正在用java编写一个gui PC程序,我正在使用Java Swing,问题是,对于给定的字体,具有给定的大小和样式,在给定的字符串上,我在某些机器上计算边界框(以像素为单位),是否有可能在其他机器上,对于完全相同的字体和完全相同的字符串,计算出的边界框会变得不同?
如果有可能(根据我在程序上得到的结果似乎是这种情况),那么我如何定义一个字体,对于给定的字符串,在每台可能的机器上,它将返回完全相同的边界框?
我正在用java编写一个gui PC程序,我正在使用Java Swing,问题是,对于给定的字体,具有给定的大小和样式,在给定的字符串上,我在某些机器上计算边界框(以像素为单位),是否有可能在其他机器上,对于完全相同的字体和完全相同的字符串,计算出的边界框会变得不同?
如果有可能(根据我在程序上得到的结果似乎是这种情况),那么我如何定义一个字体,对于给定的字符串,在每台可能的机器上,它将返回完全相同的边界框?
你不能,因为渲染取决于几个因素:
这是交叉点,设置:
本机操作系统,
可访问的安装字体(Native OS 使用不同的字体、大小、粗体......)
用于主题的字体(其属性)
各种用户设置,海关主题
可以更改本机操作系统中的全局属性的白痴自定义应用程序,而不是应用程序设置
观感
L&F使用自己的Font,不一样
默认情况下与 Native OS 相同的选项
i**** 可以更改本机操作系统中的全局属性的自定义应用程序.....
非常不同且太难的工作是根据屏幕比例(以像素为单位)更改字体,
任何更改都将在 UIManager 中进行迭代并更改 FontUIResources 的每个键