Как получить шрифт по умолчанию для меток Swing JTabbedPane? - PullRequest
12 голосов
/ 16 сентября 2009

Есть ли у текста в компонентах Swing шрифт по умолчанию? В частности, как насчет ярлыков вкладок на JTabbedPane s?

Я работаю над макетом графического интерфейса, созданного с помощью Swing, и хочу, чтобы он сочетался с изображением на экране, которое я взял из приложения Swing.

Ответы [ 6 ]

21 голосов
/ 16 сентября 2009

Это зависит от внешнего вида. Если это приложение, которое вы написали, получите значения из UIManager.getDefaults().getFont("TabbedPane.font")

3 голосов
/ 28 февраля 2013

Основываясь на ответе Преподобного Гонзо, этот фрагмент кода позволяет узнать, какие ключи есть в 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));
     }
}

Если вы ищете шрифт, в вашем случае просто приведите ключ к строке и проверьте, содержит ли он слово «шрифт». Таким образом, вы сузите набор ключей, к которым у вас есть потенциальный интерес.

У меня есть список

  • Menu.font = ...
  • TextField.font = ...
  • RadioButtonMenuItem.font = ...
  • ToolTip.font = ...
  • TitledBorder.font = ...
  • ...
  • TabbedPane.font = ...
  • ...

И, таким образом, вам нужно будет выбрать TabbedPane.font.

3 голосов
/ 16 сентября 2009

UIManager Defaults показывает значения всех свойств всех компонентов (включая TabbedPane.font).

1 голос
/ 16 сентября 2009

Это может зависеть от используемого вами внешнего вида, но для меня шрифт Swing по умолчанию -

DejaVu Sans - Обычная

Для большинства компонентов размер шрифта по умолчанию составляет около 12 или 13

0 голосов
/ 30 марта 2013

Шрифт Java GUI по умолчанию - «Helvetica», жирный шрифт 9, цвет серый.

0 голосов
/ 16 сентября 2009

Похоже, это Arial. Вот что Identifont говорит мне, и это выглядит правильно.

...