java - 使字体大小小于 1 Java GUI

标签 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

最佳答案

我相信您已经注意到,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/

相关文章:

Android 布局权重分布

java - 将字母映射到手机键盘上的数字

java - Android - openCV,获取图像的一部分 - 奇怪的行为

java - 调用 SimpleDateFormat 方法时模拟 Date()

java - 在游戏开始前添加菜单

java - 将对象列表连接到 JTable

java - 将 HTML 样式的 JtextPane 文本中的选定单词设为粗体?

java - 使用 ArrayList<JPanel> 构建 GUI

c# - Java 与 C# 和 .NET 之间的区别

java - 如何将整型变量传递给另一个类