- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
每个人都知道使用专有 API 是一件非常糟糕的事情。在几乎所有情况下,您都可以用您自己的实现或一些附加库替换该 API。
几乎...
在以下情况下您找不到任何替代方案:
table.put ( SwingUtilities2.AA_TEXT_PROPERTY_KEY, SwingUtilities2.AATextInfo.getAATextInfo ( true ) );
这行代码将正确的文本抗锯齿设置放入 L&F 默认表中。如果您不使用这些设置,则在任何文本组件中渲染某些特定符号时都会遇到很多问题(例如泰语 - “ข้อความที่เรียบง่าย”,或阿拉伯语 - “?????????”)。
它不能用其他东西替换,因为当涉及文本渲染时,AATextInfo 的实例(是的,正是那个类,而不是其他东西)在 Swing 架构中使用,而外观和感觉只是将该实例添加到默认值中,以便组件可以使用它。
所以现在我必须做出决定 - 要么在我的 L&F 中使用非常非常糟糕的泰语/阿拉伯语/其他字体渲染,要么使用该死的专有 API。
正如您可能知道的那样 - 警告如下:
XXX is Sun proprietary API and may be removed in a future release
无法抑制:http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6476630
嗯,这实际上是一个合理的限制,所以它不是问题。
问题是 - 为什么我不能用其他东西代替那个该死的东西?
也许我错过了什么?
当然,只有当您尝试创建自己的 L&F 时才会出现问题,否则您永远不需要在任何地方使用该东西。
所以问题是:
该渲染功能是否有任何替代/解决方法?
最佳答案
使用java.awt.RenderingHints,它不会生成警告。
final Map<Object, Object> hints = new HashMap<Object, Object>();
hints.put(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
hints.put(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
...
public static Map<Object, Object> setHints(Graphics2D g, Map<Object, Object> hints) {
final RenderingHints rhints = g.getRenderingHints();
for (final Map.Entry<Object, Object> entry : hints.entrySet()) {
if (!(entry.getKey() instanceof RenderingHints.Key)) {
continue;
}
final RenderingHints.Key key = (RenderingHints.Key) entry.getKey();
final Object value = rhints.get(key);
if (entry.getValue() == null) {
rhints.remove(key);
}
else {
rhints.put(key, entry.getValue());
}
entry.setValue(value);
}
return hints;
}
关于java - 寻找 Swing 文本 AA 属性替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18591139/
正则表达式/sed 专家的问题:我需要美化一些c++代码。代码中散布着具有不同类型间距的各种版本的赋值运算符。即 a=b a =b a= B a = b a= b A = B. // the co
题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 程序分析:关键是计
必需:引用列表中的列值。 一张工作表中有 n 行,每个单元格都有一个从另一张工作表中的列值引用的列表。我创建了以下代码,但它在 Z 之后中断,因为 ASCII 值不适用于 AA、AB、... 如何使用
整个文本文件如下: aa ... bb ... bb ... aa ... bb ... 行后 aa会有一行或多行 bb . 我尝试了下面的命令,它会处理所有行 aa和上面的行 aa . grep -
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 9 年前。 Improve
这个问题在这里已经有了答案: Printing int variables with float format specifier (1 个回答) 关闭 9 年前。 double a = 3.145
我一直在尝试增强我用 Java 编写的 GUI 系统以使用子像素抗锯齿功能并且取得了成功,除了一个遗留异常。这是 my other question from yesterday 的后续. 剩下的问题
这个问题在这里已经有了答案: Is gcc 4.8 or earlier buggy about regular expressions? (3 个答案) 关闭 8 年前。 我在 c++11 (ub
如何对列表进行排序以结束: ['a', 'aa', 'aaa', 'A', 'AA', 'AAA', 'b', 'bb', 'bbb', 'B', 'BB', 'BBB'] 为方便起见,假设它是一个随
我正在尝试从 android sqlite 数据库中检索数据,但它的 givine 异常是没有这样的列: Sqlite Select Query 是 -: c=db.rawQuery("Select
xxx
').find("#aa").length);我正在尝试在动态创建的元素中查找元素。由于某种原因,这失败了。为什么下面返回“0”?如何解决这个问题? alert($('xxx').find("#aa").length); 最佳答案 $('xx
我知道我可以用: string input = "AA,BB,CC"; string output = ""; foreach (var item in
我是 Azure 分析服务的新手,有几个问题 每当我们完全刷新/处理 AAS 表格多维数据集时,这是否意味着 Power-BI 报告将同时变为空白。 最终用户能够在完全刷新多维数据集时查看 PBI 报
我是 Azure 分析服务的新手,有几个问题 每当我们完全刷新/处理 AAS 表格多维数据集时,这是否意味着 Power-BI 报告将同时变为空白。 最终用户能够在完全刷新多维数据集时查看 PBI 报
String str = "aa(aaq(aas)ppp)eeews"; 如何使用正则表达式来匹配“aas”? 想匹配括号里的内容,但不确定括号里有多少个,可能会越来越多 最佳答案 由于您需要匹配括号
好吧,基本上我需要帮助来创建一个通过单击鼠标增加字体大小的代码。这是一个例子: http://www.rnib.org.uk/右上角有 3 个 AAA,可增加页面字体大小等 我当前的代码是 // Ja
AA tree 的结构(顺序)取决于其元素插入的顺序? 对于上述问题的答案,树是仅包含唯一元素还是包含重复元素是否重要? 最佳答案 考虑集合 {1, 2}。 如果你插入1,然后插入2你会得到 1 \
尝试从 Azure Analysis Services 部署模型时收到以下错误。模型中表的查询按照 Visual Studio 中的设置正常工作,并且处理过程没有错误。我在尝试部署时仅收到以下错误。我
尝试从 Azure Analysis Services 部署模型时收到以下错误。模型中表的查询按照 Visual Studio 中的设置正常工作,并且处理过程没有错误。我在尝试部署时仅收到以下错误。我
有人知道有关 Audible Audio (.aa) 文件规范的好资源吗? 我正在尝试编写一个可以使用它们的程序,如果没有人知道某个资源,有什么关于我自己对规范进行逆向工程的提示吗?我在十六进制编辑器
我是一名优秀的程序员,十分优秀!