Java字体显示问题

标签 java

我发现,在我的某个客户端,当我使用Graphics2D本身提供的字体,并将尺寸减小1时,无法正常显示。

private void drawInformationBox(Graphics2D g2, JXLayer<? extends V> layer) {
    if (MainFrame.getInstance().getJStockOptions().getYellowInformationBoxOption() == JStockOptions.YellowInformationBoxOption.Hide) {
        return;
    }

    final Font oldFont = g2.getFont();
    final Font paramFont = new Font(oldFont.getFontName(), oldFont.getStyle(), oldFont.getSize());
    final FontMetrics paramFontMetrics = g2.getFontMetrics(paramFont);
    final Font valueFont = new Font(oldFont.getFontName(), oldFont.getStyle() | Font.BOLD, oldFont.getSize() + 1);
    final FontMetrics valueFontMetrics = g2.getFontMetrics(valueFont);
    /*
     * This date font cannot be displayed properly. Why?
     */
    final Font dateFont = new Font(oldFont.getFontName(), oldFont.getStyle(), oldFont.getSize() - 1);
    final FontMetrics dateFontMetrics = g2.getFontMetrics(dateFont);

字体的其余部分没问题。这是屏幕截图(参见黄色框。黄色框内有 3 种不同的字体): alt text http://www.investalks.com/attachments/month_1005/10051420318460461ffea5a2f9.jpg

最佳答案

您没有显示足够的代码来确定大小是否确实是问题所在......

话虽如此,如果您使用 deriveFont() API,您的代码将更易于阅读,如下所示

final Font dateFont = oldFont.deriveFont((float)(oldFont.getSize() - 1));

这可能会也可能不会解决您的问题。我的钱花在了一些区域设置上,它返回当前字体中没有字形的字符。

关于Java字体显示问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2834483/

相关文章:

java - 如何从数字文本中删除前导零?

java - java递归将一个单词分成三个或更多单词

java - 使用 Netbeans IDE 动态更改 jtable 中列的宽度

java - Labview TCP与Java的连接

java - ObjectInputStream 无法正确转换对象

java - 如何在maven pom.xml中使用自定义插件?

java - java CLASSPATH 环境变量上的 Jar 被忽略

java - Autowired 在自定义注销处理程序和自定义用户详细信息中给出 null

java - LWJGL如何存储它的matrix3f数据?

java - 不使用 GWTTestCase 对 GWT RequestFactory 服务进行单元测试