如何获取Swing JTabbedPane标签的默认字体?

12

Swing组件中的文本是否有默认字体?特别是在JTabbedPane选项卡标签上呢?

我正在使用Swing创建GUI模型,并希望将其与我截取的Swing应用程序屏幕图像融合。

6个回答

21

这取决于外观和感觉。如果是您编写的应用程序,请从 UIManager.getDefaults().getFont("TabbedPane.font") 中获取值。


1
是的,谢谢,那个可行,尽管你忘记了一对括号:UIManager.getDefaults().getFont("TabbedPane.font")它实际上是Arial Bold,正如我所想(如果有价值的话)。 - Paul Reiners
3
您如何确定其他摆动组件的适当键? - Brad Mace
你可以通过将“TabbedPane”更改为你感兴趣的元素类型来获取其他组件的字体。例如,我刚刚发现“ToolTip.font”是“Dialog”。 - marklark

3

UIManager默认值展示了所有组件(包括“TabbedPane.font”)的所有属性值。

点击此处查看更多信息。


3

根据Reverend Gonzo的答案,这段代码可以让您知道UIDefaults中有哪些键。由于这些键已经解释得很清楚了,您知道可以使用哪个键。例如,我需要知道JTextField字体的键,只能通过这种方式找到。

Set<Object> keys = UIManager.getDefaults().keySet();
for (Object key : keys) {
     if (key instanceof String && ((String) key).contains("font")) {
          System.out.println(key + "=" + UIManager.getDefaults().get(key));
     }
}

如果你正在寻找一个字体,只需要将键转换为字符串,并检查是否包含单词“font”。这样可以缩小你潜在感兴趣的键的范围。
我有一个列表:
  • Menu.font=...
  • TextField.font=...
  • RadioButtonMenuItem.font=...
  • ToolTip.font=...
  • TitledBorder.font=...
  • ...
  • TabbedPane.font=...
  • ...
因此,你需要选择TabbedPane.font。

尝试在Java8上运行,但只得到了一个减少的子集。改变方法,将getDefaults()的结果分配给Hashtable,创建一个迭代器,然后像您建议的那样检查其键。 - Alfabravo

1

这可能取决于您使用的“外观”,但对我来说,Swing的默认字体是

DejaVu Sans - Plain

对于大多数组件,字体大小默认为约12或13


0

看起来像是Arial字体。Identifont告诉我的,看起来没错。


-3
Java GUI 的默认字体是“Helvetica”,加粗大小为9,颜色为灰色。

这是绝对错误的:正如其他人已经正确回答的那样,字体取决于LAF和/或操作系统设置。 - kleopatra

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接