Java 如何更改JMeter的字体?(上部i现在与下部L相同)

Java 如何更改JMeter的字体?(上部i现在与下部L相同),java,swing,jmeter,Java,Swing,Jmeter,我在网上搜索过,只找到了有关如何更改字体大小的链接: 我在MacOSJMeter 5.1上,控件中的字体显示上部I与下部L相同。当我开始阅读关于大小问题的答案时,我开始了解java跨平台的HiDPI和swing是什么 在jmeter.properties中取消注释jsyntaxtextarea.font.size=24不会产生任何可见效果,使用Zoom确实会更改字体大小,但i-L问题在更大范围内持续存在 我有什么选择 下载JMeter的源代码,重建。-对我来说很复杂,乍一看是最不可取的。在源中

我在网上搜索过,只找到了有关如何更改字体大小的链接:

我在
MacOS
JMeter 5.1
上,控件中的字体显示上部
I
与下部
L
相同。当我开始阅读关于大小问题的答案时,我开始了解java跨平台的
HiDPI
swing
是什么

jmeter.properties
中取消注释
jsyntaxtextarea.font.size=24
不会产生任何可见效果,使用
Zoom
确实会更改字体大小,但i-L问题在更大范围内持续存在

我有什么选择

  • 下载JMeter的源代码,重建。-对我来说很复杂,乍一看是最不可取的。在源中设置字体名称的位置
  • 尝试使用
    swing
    功能。不确定是否可以使用JMeter进行重建。至于swing,我现在只读了一下,并回答了字体大小:
  • 现在,对于字体,您可以使用Swing机制。要做到这一点,请添加 jmeter.sh或jmeter.bat JVM系统属性:

    -Dswing.plaf.metal.controlFont=Dialog-20

    并确保您使用跨平台LAF

    但“有趣的是”使用
    跨平台LAF
    复制粘贴在我的Mac上不起作用。Command-C可以在某些LAF上工作,但不能在其他LAF上工作(包括跨平台)。“上i与下L相同”问题在所有LAF上都可见

  • 尝试MacOS字体替换。我不确定这是否可行。在网上快速搜索macos字体替换时,没有发现一些默认字体更改等具体情况。JMeter使用什么字体 增加: 下面是脚本从asnwer运行后发生的情况,有些部分不适合空间,有些部分太小

  • 如果复制粘贴快捷方式在Mac上不起作用,您应该通过
  • 您可以通过将下一行添加到(位于JMeter安装的“bin”文件夹中),将JMeter字体更改为您喜欢的任何字体

    需要重新启动JMeter才能获取属性

  • 最后,您可以在运行时直接选择并更改字体,如:

    import javax.swing.*
    import java.awt.Font
    
    def keys = UIManager.getDefaults().keys()
    keys.each { key ->
        def value = UIManager.get(key)
        if (value instanceof javax.swing.plaf.FontUIResource) {
            UIManager.put(key, new javax.swing.plaf.FontUIResource("Comic Sans MS", Font.ITALIC, 24))
        }
    }
    
    因此,您将获得有史以来最好的JMeter UX:


  • 德米特里,谢谢你的帮助。然而,swing只适用于金属(
    swing.plaf.metal
    ),对吗?我尝试为
    darcula
    添加相同的属性,但在界面上看不到任何差异。是秋千上的造型还是…上的造型。。。?脚本改变了一些东西,但我在我的问题中添加了屏幕,它看起来不太好,此外,我想更改我键入的字体,例如,
    名称
    元素的注释
    ,字体中仍然有不可分辨的
    I
    。由于某种原因,在金属外观中,文本的复制粘贴在Macbook上不起作用。这是一些swing问题还是Jmeter特有的问题?我可以向bugzilla报告原因。我没有Mac电脑,因此我无法确定那里正在使用什么LAF,您可以通过“选项->外观”菜单将JMeter的LAF切换到
    Metal
    CrossPlatform
    ,上面的提示应该有效。当然,你可以向bugzilla汇报,但我的期望是,他们会建议向你的男朋友寻求帮助,因为这与JMeter/Swing无关。第二种方法适用于所有LAF。不相关吗?在MacOS上,Darcula LAFs可以复制粘贴,而在金属和十字架上则不行。为什么不相关?查看JMeter源代码,
    Control+C
    Command+C
    应该可以工作,这取决于swing LAFs文本复制粘贴的contextOn Mac使用Ctrl-C/V,而不是Command-C/V,所以它是可行的。
    import javax.swing.*
    import java.awt.Font
    
    def keys = UIManager.getDefaults().keys()
    keys.each { key ->
        def value = UIManager.get(key)
        if (value instanceof javax.swing.plaf.FontUIResource) {
            UIManager.put(key, new javax.swing.plaf.FontUIResource("Comic Sans MS", Font.ITALIC, 24))
        }
    }