首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java AWT字体被打乱

Java AWT字体被打乱
EN

Stack Overflow用户
提问于 2017-08-21 01:44:58
回答 1查看 96关注 0票数 0

我们目前正在使用下面的代码在XChart库中绘制文本,但是在ODROID C2上,例如文本被打乱并且不可读(见附图以供参考)。之前使用的代码是以layout.draw开头的行,但由于它在EPS和PDF导出中导致问题,因此被替换。我们有一个github问题here,它说明了问题的各种原因。它在其他几个安装上工作得很好。

      FontRenderContext frc = g.getFontRenderContext();
      // TextLayout layout = new TextLayout(tickLabel, font, new FontRenderContext(null, true, false));
      TextLayout layout = new TextLayout(tickLabel, getChartPainter().getStyleManager().getAxisTickLabelsFont(), frc);
      Rectangle2D tickLabelBounds = layout.getBounds();
      // layout.draw(g, (float) xOffset, (float) (yOffset + axisTick.getAxis().getPaintZone().getHeight() - tickLocation + tickLabelBounds.getHeight() / 2.0));

      Shape shape = layout.getOutline(null);

      AffineTransform orig = g.getTransform();
      AffineTransform at = new AffineTransform();
      at.translate((float) xOffset, (float) (yOffset + axisTick.getAxis().getPaintZone().getHeight() - tickLocation + tickLabelBounds.getHeight() / 2.0));
      g.transform(at);
      g.fill(shape);
      g.setTransform(orig);

更新:

事实证明这是与arm64 java相关的。当使用64位Java时,问题如下所示,当使用32位Java时,它工作正常。我仍然不知道为什么或者如何解决这个问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-01 05:17:15

这个问题与运行在odroid c2上的oracles arm64 Java有关。切换到Zulu Java后,这个问题就解决了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45785116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档