【发布时间】:2013-03-08 16:11:49
【问题描述】:
我正在开发一个桌面 Java 应用程序,并且一直在使用 JDK 6 通过 IDE 进行开发。我使用渲染提示 VALUE_FRACTIONALMETRICS_ON 以及其他提示来更好地在 JLabels 中渲染文本。这些提示在 JVM 1.6 上运行良好,但我最近注意到,当我使用 JRE 1.7 运行应用程序时,它似乎完全忽略了 VALUE_FRACTIONALMETRICS_ON 是否有什么我做错了让 Java 7 忽略了这些提示?
lblDate = new ATimeLabel(ATimeLabel.DATE_LETTERS) {
private static final long serialVersionUID = 1L;
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
g2d.setRenderingHint(RenderingHints.KEY_RENDERING,
RenderingHints.VALUE_RENDER_QUALITY);
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
g2d.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS,
RenderingHints.VALUE_FRACTIONALMETRICS_ON);
super.paintComponent(g2d);
}
};
FRACTIONALMETRICS 对文本有最明显的视觉效果,所以我想要让它发挥作用。
这是我从使用 Java 6 的 IDE (Left) 运行应用程序和双击 Jar 文件其自身 (对),它使用我的系统 JRE、Java 7。 (我还临时添加了红色边框以表明paint方法确实有效)
非常感谢任何帮助。
【问题讨论】:
标签: java swing java-7 java-2d text-rendering