我用 java Swing 写了一个小 GUI。但是我在使用默认外观和感觉时遇到了一些小问题com.sun.java.swing.plaf.gtk.GTKLookAndFeel
如您所见,菜单和按钮的字体与我的桌面中其他应用程序的字体不同(在图片 Eclipse 和 Nautilus 中),我在 Gnome2 上使用 GTK。
同时在 windows 上使用相对观感没有区别:
字体看起来一模一样。
这怎么可能?我可以修改哪些参数来编辑 GTK 上的字体外观?
我用 java Swing 写了一个小 GUI。但是我在使用默认外观和感觉时遇到了一些小问题com.sun.java.swing.plaf.gtk.GTKLookAndFeel
如您所见,菜单和按钮的字体与我的桌面中其他应用程序的字体不同(在图片 Eclipse 和 Nautilus 中),我在 Gnome2 上使用 GTK。
同时在 windows 上使用相对观感没有区别:
字体看起来一模一样。
这怎么可能?我可以修改哪些参数来编辑 GTK 上的字体外观?
设置外观和感觉后,考虑为组件上的字体设置默认值。
UIManager.put("Menu.font", new FontUIResource(your_desired_font));
UIManager.put("Button.font", new FontUIResource(your_desired_font));
Windows L&F 默认使用new Font("Tahoma", Font.PLAIN, 11);
您应该让系统决定使用哪个 L&F
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
在上图中,您使用的是带有 Unity 的 Ubuntu(我猜?),但Unity 不使用 GTK而是使用Nux。
创建原生外观的另一种方法是使用SWT(标准小部件工具包),它为您提供适用于 Windows、Linux 和 OSX 的系统相关库,以便程序中的图形元素使用这些系统中的实际原生元素。但是我必须警告你,使用起来可能不是那么容易(有时甚至是奇怪和烦人的:)),因为你不能使用任何Swing 组件。所以也许这不值得麻烦——由你来决定。
对于 GTK,通过 UIManager.getLookAndFeelDefaults() 设置字体标准不起作用......然后我通过反射找到了一个有效的黑客,你可以在这里找到它作为回应: https ://stackoverflow.com/a/31345102/3757320