我想在图表的网格中标记我的井号标记,但是当我使用字体大小 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 生成的图表的屏幕截图。
最佳答案
我相信您已经注意到,Font 构造函数采用 int
对于size
参数-有效渲染不可能构建具有 size
的字体(至少使用此方法) 0 到 1 之间。
但是,我确实找到了 deriveFont Font
的方法类(class)特别有趣:
public Font deriveFont(float size)
Creates a new Font object by replicating the current Font object and applying a new size to it.
Parameters: size - the size for the new Font.
deriveFont
方法,它声称构造一个具有给定大小的新字体,采用 float
作为参数 - 因此,可以执行如下操作:
Font theFont = new Font("SansSerif",Font.PLAIN,1);
theFont = theFont.deriveFont(0.5);
g2.setFont(theFont);
最终字体大小为 0.5。
现在,我还没有亲自测试过这一点 - 设置图形程序需要时间,因此您比我更适合尝试它。但只是把它作为一种可能性扔掉。
关于java - 使字体大小小于 1 Java GUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13598262/