Netbeans 中的丑陋字体 - 如何让它使用系统字体?

Jav*_*eva 70 fonts netbeans

我在让 Netbeans 字体看起来不错时遇到了问题,自从我尝试 Ubuntu ~8 以来,这一直是一个问题。出于某种原因,字体看起来好像没有仅在 Netbeans 中获得子像素平滑,对于其余的应用程序,它们看起来很完美。

看看截图有多丑:

在此处输入图片说明

不仅仅是代码区域,应用程序中的每个字体都是这样的。我环顾四周,显然.bashrc将以下行添加到文件中应该可以解决问题,但在我的情况下它没有:

export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=lcd'
Run Code Online (Sandbox Code Playgroud)

它认为它可能只影响基于 Java 的应用程序,但我还没有能够测试另一个 Java 应用程序来检查字体。

有谁知道我能做些什么来解决这个问题?如何让 Netbeans 使用系统字体?

nem*_*m75 38

正如评论中所述,这是 Linux 上的 Java Swing 应用程序的问题。Swing 确实使用了 Gnome 的字体平滑设置(停用、灰度或子像素)——尽管它忽略了提示设置。它总是使用完整的提示,并且如果您运行的 Ubuntu 很少或没有字体提示(正如大多数人所做的那样,因为很少提示是默认设置),这将使字体看起来与其他应用程序有很大不同。像 Eclipse 这样的 SWT 应用程序很好,但如果你喜欢 Netbeans,这对你没有帮助。

警告:对于以下解决方法,我只讨论编辑器字体,因为在 IDE 中这对我来说很重要。您也可以将其应用于菜单字体等,但这可能有点过头了。

我在这里找到的唯一可用解决方案:使用 Fontforge 编辑您选择的编辑器字体并从字体本身中删除所有提示信息,然后将其另存为新字体并在 Netbeans 中使用。

  1. sudo apt-get install fontforge
  2. 启动Fontforge
  3. 打开您选择的字体
  4. Ctrl+Aedit -> Select -> Select all选择所有字符
  5. 提示?清晰的说明
  6. Ctrl+ Shift+Felement -> font info打开字体信息
  7. 重命名字体(例如到原始名称 + '_nohints')
  8. 将编辑后的字体保存.fonts在您家中的目录中,通过file -> generate fonts,确保使用 Ubuntu 读取的格式(请参阅下一步)
  9. 清除字体缓存fc-cache -rv- 遵循其输出以确保您的新字体文件已被选中(例如.sfd,不会但.ttf会)。
  10. 运行 Netbeans 并使用您创建的字体作为编辑器字体

不,不完美,是的,有点麻烦,但仍然是一个不同的世界。希望有帮助。

  • 我使用了“Monospace”,这是 NetBeans 中的默认设置。我试图修复 `Ubuntu Monospace`,现在看起来更好,但仍然比 `Monospace` 更糟。不管怎么说,还是要谢谢你。如果我能在文件系统上找到 `Monospace` 位置,我也会尝试修复它。 (3认同)

小智 18

添加

--laf Nimbus -J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcd
Run Code Online (Sandbox Code Playgroud)

或者

-J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcd --laf Metal
Run Code Online (Sandbox Code Playgroud)

default_options文件中字符串的末尾netbeans.config。您可以在$NETBEANS_PATH/etc/文件夹中找到它。从系统首选项中缩小您的应用程序字体。

来源

  • 配置文件通常位于`/home/<user_name>/<neabeans_folder>/etc/netbeans.conf`。 (9认同)
  • 对我不起作用:( (2认同)

R. *_*olt 7

字体的抗锯齿在 Ubuntu Java Swing 应用程序中无法正常工作。

添加:

-J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcd
Run Code Online (Sandbox Code Playgroud)

netbeans_default_options字符串末尾的 netbeans.config 。

您可以在 $NETBEANS_HOME/etc/ 文件夹中找到配置文件(例如/home/<user_name>/<netbeans_folder>/etc/netbeans.conf

例子:

netbeans_default_options="-J-client -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-Dnetbeans.logger.console=true -J-ea -J-Dapple.laf.useScreenMenuBar=true -J-Dapple.awt.graphics.UseQuartz=true -J-Dsun.java2d.noddraw=true -J-Dsun.java2d.dpiaware=true -J-Dsun.zip.disableMemoryMapping=true -J-Dnetbeans.extbrowser.manual_chrome_plugin_install=yes -J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcd"
Run Code Online (Sandbox Code Playgroud)


Chr*_*olt 7

我知道这是一个老问题,但在我寻求同样的问题时,我在这里尝试了所有技巧,但没有运气。我以为我将不得不忍受 netbeans 中糟糕的文本。

然后我发现了这个:http: //youtrack.jetbrains.com/issue/IDEA-57233#comment=27-472038

基本上:Ubuntu 13.10、Netbeans (7.3)、针对 freetype 的 Infinality 字体补丁、OpenJDK7 以及用于修复 Swings 糟糕字体处理的补丁。它“刚刚奏效”!!!

复制到这里以防链接失效:

  1. 安装 freetype

    $ sudo apt-get install libfreetype6
    
    Run Code Online (Sandbox Code Playgroud)
  2. 安装无限补丁

    $ sudo add-apt-repository ppa:no1wantdthisname/ppa
    $ sudo apt-get update
    $ sudo apt-get install fontconfig-infinality
    
    Run Code Online (Sandbox Code Playgroud)

    之后我不得不做以下事情:

    $ sudo rm /etc/fonts/conf.avail/52-infinality.conf
    $ sudo ln -s /etc/fonts/infinality/infinality.conf /etc/fonts/conf.avail/52-infinality.conf
    
    Run Code Online (Sandbox Code Playgroud)

    要像字体渲染一样使用 Windows 7,请执行以下操作:

    $ sudo /etc/fonts/infinality/infctl.sh setstyle win7
    
    Run Code Online (Sandbox Code Playgroud)

    在 /etc/profile.d/infinality-settings.sh 中将 USE_STYLE 设置为“WINDOWS7”

  3. 安装字体固定的 OpenJDK

    $ sudo add-apt-repository ppa:no1wantdthisname/openjdk-fontfix
    $ sudo apt-get update
    $ sudo apt-get install openjdk-7-jdk
    
    Run Code Online (Sandbox Code Playgroud)

    .../etc/netbeans.conf

    netbeans_default_options包括: -J-Dawt.useSystemAAFontSettings=lcd-J-Dsun.java2d.xrender=true"

    并设置 netbeans_jdkhome="/usr/lib/jvm/java-1.7.0-openjdk-amd64"

这改变了我的 Netbeans 字体,从 1990 年代可以接受到现代很棒。我现在可以使用 Inconsolata 作为我的 Netbeans 编辑器字体,它看起来很棒。

根据要求的屏幕截图:(实际文本比此捕获更清晰。捕获中的某些内容稍微模糊了它)。 在此处输入图片说明