当前位置: 首页 > 面试题库 >

如何在Swing GTK LookAndFeel中更改默认字体大小?

蓝夕
2023-03-14
问题内容

有没有办法在Swing GTK LaF中更改默认字体大小?

GTK
LaF似乎假定为72dpi,因此所有字体仅是使用96dpi屏幕时应具有的大小的3/4。有关详细信息,请参见此Fedora错误。在此同时,我想找到一种解决方法

我已经尝试重置通过字体大小UIDefaults,推荐这里,例如,而是(因为也注意到有)的GTK的LaF似乎忽略这一点。

可以
建立一个小部件工厂,该工厂还将为创建所有Swing小部件设置所需的字体大小,但是这会带来很大的侵害,因此,如果有其他方法,我想避免使用这种方法。

编辑: 以下不起作用:

public class GTKLaF extends com.sun.java.swing.plaf.gtk.GTKLookAndFeel {
  @Override
  public UIDefaults getDefaults() {
    final float scale = 3f;

    final UIDefaults defaults = super.getDefaults();

    final Map<Object,Object> changes = new HashMap<Object,Object>();

    for (Map.Entry<Object,Object> e : defaults.entrySet()) {
      final Object key = e.getKey();
      final Object val = e.getValue();

      if (val instanceof FontUIResource) {
        final FontUIResource ores = (FontUIResource) val;
        final FontUIResource nres =
          new FontUIResource(ores.deriveFont(ores.getSize2D()*scale));
        changes.put(key, nres);
        System.out.println(key + " = " + nres);
      } 
      else if (val instanceof Font) {
        final Font ofont = (Font) val;
        final Font nfont = ofont.deriveFont(ofont.getSize2D()*scale);
        changes.put(key, nfont);
        System.out.println(key + " = " + nfont);
      }
    }

    defaults.putAll(changes);

    return defaults;
  }
}

您可能会认为这将至少打印十二个键-
值对,但仅打印一个:TitledBorder.font。显然其他字体属性不是由GTLLookAndFeel提供的,而是来自其他地方!


问题答案:

似乎无法设置默认字体大小。但是,此问题中引用的错误已得到修复,因此现在尚无此必要。



 类似资料:
  • 问题内容: 什么字体确实和默认情况下使用?我希望能够改变这一点。但我不想在html字符串中执行此操作,相反,我想要执行以下操作: 有这样的财产或其他方式吗? 问题答案: 您可以使用您的对象(这样您就可以更轻松地设置和修改对象),但是可以将HTML换成一个; 从HTML 4.01 开始,不推荐使用 标记。 假设您已经创建了,可以使用字体的属性: 另外,您可以只提供值,而不使用对象:

  • 字体Monospaced映射到不同系统上的不同字体。在Windows上,它被映射到“Courier”,在Linux上,它被映射到“Lucida Typewriter”。 http://ui.netbeans.org/docs/ui/editor_fonts_colors/editor_fonts_and_colors.htm 我在windows上,想将单倍行距字体映射到“consolas”而不是“

  • 问题内容: 我将如何为所有实例设置默认字体。而不是分别为每个字体设置字体。 问题答案: 使用定义JLabel的默认字体: 通过:http : //coding.derkeiler.com/Archive/Java/comp.lang.java.help/2005-04/msg00395.html

  • 问题内容: 如何增加字体大小? 问题答案: 其中fontSize是一个int。drawString的API指出x和y参数是坐标,与文本的大小无关。

  • 问题内容: 我是Vala / Gtk的新手,我正在尝试更改Gtk.Label的字体大小,但是我找不到一种好的方法。 我发现我可以像这样使用标记: 但这似乎有点骇人听闻。正确的做法是什么? 问题答案: 您可以尝试使用CSS,我认为最近这是首选方法。给您的标签一个类,然后加载一个CSS。如果您要更改标签的字体大小,我敢打赌您也将自定义其他内容,因此CSS可能对您有用。

  • 所以我开始了一个个人简历网站,我偶然发现了一个非常酷的东西:font awesome,它以文本的形式提供图形,允许你通过CSS添加字体效果。我的问题是一切都很好,直到我试图改变字体大小,无论什么原因,它就是不会改变。你有什么想法吗?我也是新的这里,我已经阅读通过如何使帖子,但如果我做错了,请让我知道。