使字体大小小于1个Java GUI

时间:2012-11-28 05:12:29

标签: java swing user-interface font-size java-2d

我想在我的网格中为我的图形标记我的哈希标记,但是当我使用偶数字体大小1时,这是大的方法!有没有办法让字体大小小于1?我错过了我编码的方法吗?

这是生成网格并尝试在哈希上添加标签的代码。

     for (double k = myStart1; k <= myEnd1; k = k + (myEnd1 - myStart1) / 8) {
    g2.setColor(Color.BLACK);
        g2.draw(new Line2D.Double(k, (max - min) / 60, k, -(max - min) / 60));
        String labelx=String.valueOf(k);
        Float xCo=Float.parseFloat(Double.toString(k));
        g2.setFont(new Font("SansSerif",Font.PLAIN,1));
        g2.drawString(labelx, xCo, 0);
    }

以下是x ^ 2。enter image description here

生成的图表的屏幕截图

1 个答案:

答案 0 :(得分:5)

我确信你已经注意到了,Font构造函数对int参数采用size - 有效地无法构造字体(至少使用这种方法)有size介于0和1之间。

然而,我确实发现Font类的deriveFont方法特别有趣:

  

public Font deriveFont(float size)

     

通过复制当前Font对象并对其应用新大小来创建新的Font对象。

     

参数:   size - 新Font的大小。

声称构造具有给定大小的新Font的deriveFont方法需要float作为参数 - 因此,可能会执行以下操作:

Font theFont = new Font("SansSerif",Font.PLAIN,1);
theFont = theFont.deriveFont(0.5);
g2.setFont(theFont);

导致大小为0.5的字体。

现在,我自己没有对此进行测试 - 设置图形程序需要时间,因此您可以比我更好地尝试它。但只是把它扔出去作为一种可能性。