解决 GTK+/GNOME 3 环境下 Java Swing 程序使用本地 GTK+ 主题时菜单无边框 bug 的方法...
在 GTK+/GNOME 3 環境下采用默認的 Adwaita 主題時,Java Swing 程序如果使用本地 GTK+ 主題會出現菜單無邊框的 bug,這個問題也可能在其他常用的 GTK+ 主題中出現。說這是 Java Swing 的 bug 還是 GTK+/GNOME 3 的主題(如 Adwaita)的 bug 其實意義不是太大。這里給出一個簡單的解決辦法,其思路是修改 GTK+/GNOME 3 的主題,這里以系統默認的 Adwaita 主題為例:
Adwaita 主題文件位于?/usr/share/themes/Adwaita 目錄下,其中包含 gtk-2.0、gtk-3.0、qt 等幾個子目錄,我們要修改的是 gtk-2.0 子目錄中的主題配置文件。進入 /usr/share/themes/Adwaita/gtk-2.0 目錄,編輯 main.rc 文件,找到“style "menu" {”這一行(大概是第1520 行),將?xthickness 及?ythickness 設置為:
xthickness = 1 ythickness = 1然后在下面增加如下內容:
engine "pixmap" {image {function = BOXfile = "assets/line.png"} }上述修改后,style "menu" 部分看起來應該類似下面這樣:
style "menu" {xthickness = 1ythickness = 1bg[NORMAL] = @base_colorbg[INSENSITIVE] = @base_colorbg[PRELIGHT] = @base_colorbg[SELECTED] = @selected_bg_colorengine "pixmap" {image {function = BOXfile = "assets/line.png"}}}然后再找到“style "separator_menu_item" {”這一行,將其修改為如下內容:
style "separator_menu_item" {xthickness = 1ythickness = 1engine "pixmap" {image {function = BOXfile = "assets/line.png"}}}修改完后保存 main.rc,重新啟用 Adwaita 主題生效后,就會發現 Java Swing 程序使用 GTK+ 主題后菜單邊框終于正常出現啦。對于其他 GTK+/GNOME 3 主題如果出現類似 Adwaita 主題這種情況,也可以采用上述方法來解決。
轉載于:https://www.cnblogs.com/cyberniuniu/p/5931221.html
總結
以上是生活随笔為你收集整理的解决 GTK+/GNOME 3 环境下 Java Swing 程序使用本地 GTK+ 主题时菜单无边框 bug 的方法...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 代码优化Android ListView
- 下一篇: Python 标准库 —— uuid(生