如何在使用drawString()时将字体大小减小到0.0001f?

时间:2018-02-20 13:39:10

标签: java font-size graphics2d drawstring

我现在有一个关于OpenStreetMaps的作业,其中一个练习是在地图上显示各自道路的道路名称。

我现在的问题是,我们使用的坐标是如此之小,以至于即使是最小的int字体也比它应该的大一百倍。

我尝试过方法deriveFont(),但它似乎没有任何效果。

g.setPaint(Color.black);
    for (DrawnString d : model.getRoads()){
        Point2D.Double p = d.getPosition();

        Font font = new Font("TimesRoman", Font.PLAIN, 1);
        font.deriveFont(0.0001f); //doesn't work!
        g.setFont(font);

        g.drawString(d.getText(), (float) p.x, (float) p.y);
    }

我的问题是,如果有办法将字体大小减小到像0.0001f那么小的尺寸吗?

2 个答案:

答案 0 :(得分:2)

deriveFont()方法返回类型为font的对象,该对象是具有更改参数的调用字体的副本。 因此,将行更改为:font = font.deriveFont(0.001f);,一切都按预期工作(使用非常小的字体)

答案 1 :(得分:1)

好吧,这是我的愚蠢,我只是错过了在derivedFont()前面的“font =”。

font = font.deriveFont(0.0001f);

现在有效。