NetBeans菜单字体异常求助:Ubuntu下GTK+外观重影字体问题
解决NetBeans 8.2在Ubuntu 16.04 GTK+外观下粗体字体重影问题
我之前在Ubuntu 16.04.4 LTS上用NetBeans 8.2时,也碰到过一模一样的GTK+外观模式下菜单粗体字体重影、双重显示的问题,折腾了几种方法终于搞定,给你分享几个有效的解决方案:
方法一:修改NetBeans启动配置强制统一字体渲染
这个方法通过调整JVM参数,让NetBeans使用Swing自带的字体渲染逻辑,避开GTK+的兼容性冲突:
- 找到NetBeans的安装目录,默认路径一般是
/usr/local/netbeans-8.2/,自定义安装的话就找你对应的路径 - 打开终端,用编辑器修改配置文件:
sudo nano /usr/local/netbeans-8.2/etc/netbeans.conf - 找到
netbeans_default_options这一行,在现有参数的末尾添加以下内容:
如果已经有类似的渲染参数,直接替换成这个组合即可-J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcd -J-Dsun.java2d.xrender=true - 保存文件(按
Ctrl+O回车确认,再按Ctrl+X退出),重启NetBeans后粗体重影应该就消失了。
方法二:调整系统GTK+字体设置
有时候是系统字体和NetBeans的渲染逻辑冲突,调整系统字体也能解决问题:
- 打开Ubuntu的系统设置,进入字体选项
- 把「窗口标题」或「菜单」的粗体字体换成非粗体版本(比如把默认的Ubuntu Bold换成Ubuntu Regular),或者直接更换成另一种字体(比如DejaVu Sans)
- 也可以尝试调整字体的DPI设置(如果你的显示器DPI不是默认值),应用设置后重启NetBeans。
方法三:切换到非GTK+外观(备选方案)
如果上面两种方法都没效果,临时切换到NetBeans自带的外观模式也能避开这个问题:
- 打开NetBeans,点击顶部菜单栏的工具 -> 选项 -> 外观
- 在「外观」标签页的「Look and Feel」下拉菜单里,选择Nimbus或者Metal,点击「应用」后重启NetBeans。
补充说明
这个问题本质是Ubuntu 16.04的GTK+ 3框架和NetBeans 8.2使用的Swing组件之间存在字体渲染兼容性冲突,粗体字体的双重缓存机制导致了重影现象,上面的方法都是从统一渲染逻辑或避开冲突的角度来解决的。
内容的提问来源于stack exchange,提问作者Olga Pshenichnikova
相关产品推荐
相关产品推荐

