【问题标题】:Swing and GTK fontSwing 和 GTK 字体
【发布时间】:2013-04-27 23:56:52
【问题描述】:

我用 java Swing 写了一个小 GUI。但是我使用com.sun.java.swing.plaf.gtk.GTKLookAndFeel的默认外观和感觉有一些小问题

正如您所见,菜单和按钮的字体与我桌面中其他应用程序的字体不同(在图片 Eclipse 和 Nautilus 中),我在 Gnome2 上使用 GTK。

同时在windows上使用相对观感没有区别:

字体看起来一模一样。

这怎么可能?我可以修改哪些参数来编辑 GTK 上的字体外观?

【问题讨论】:

    标签: java swing user-interface look-and-feel


    【解决方案1】:

    您应该让系统决定使用哪个 L&F

    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    

    在上图中,您使用的是带有 Unity 的 Ubuntu(我猜?),但 Unity does not use GTKNux

    创建原生外观的另一种方法是使用SWT(标准小部件工具包),它为您提供适用于 Windows、Linux 和 OSX 的系统相关库,以便您的程序中的图形元素使用实际的原生这些系统中的元素。但我必须警告你,使用起来可能不是那么容易(有时甚至是奇怪和烦人的:)),因为你不能使用 任何 Swing 组件。所以也许这不值得麻烦——由你来决定。

    【讨论】:

    • 这条指令给了我将com.sun.java.swing.plaf.gtk.GTKLookAndFeel设置为外观的相同结果。附言我在 Gnome2 上使用 gtk
    • 嗯,那我没主意了。我刚刚尝试了这个 oracle 示例:docs.oracle.com/javase/tutorial/uiswing/lookandfeel/… 并添加了一个菜单,以便我可以看到它在我的 Ubuntu 中的样子。但是菜单上没有什么不同。您是否有可能以某种方式在 Ubuntu 中为 Java 程序使用其他设置——比如使用 Compiz?
    【解决方案2】:

    在设置外观后考虑为组件上的字体设置默认值。

    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);

    【讨论】:

      【解决方案3】:

      对于 GTK,通过 UIManager.getLookAndFeelDefaults() 设置字体标准不起作用......然后我通过反射找到了一个有效的黑客,你可以在这里找到它作为回应: https://stackoverflow.com/a/31345102/3757320

      【讨论】:

        猜你喜欢
        • 2011-04-23
        • 1970-01-01
        • 1970-01-01
        • 2014-08-02
        • 1970-01-01
        • 2017-04-29
        • 2012-01-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多