Swing UI не имеет собственного взгляда ОС

Я создаю приложение в колебании Java, и я использую следующий код, чтобы дать UI собственный взгляд ОС

try {
  UIManager.setLookAndFeel(
    UIManager.getSystemLookAndFeelClassName());
  } catch (Exception e) {
    e.printStackTrace();
}

На OS X взгляд прекрасен, но на окнах (XP и 7) кнопки похожи на это.

сопроводительный текст http://img710.imageshack.us/img710/8735/buttonsoc.png

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

Я использую Java 1.6

Заранее спасибо!

5
задан Virat Kadaru 8 June 2010 в 17:41
поделиться

1 ответ

Возможно, вы создаете свои элементы GUI до того, как фактически установите L&F? Если вы уже создали (например) экземпляры JButton и вызвали методы на них, они выделяют свой аналог UI - изменения L&F после этого не повлияют на уже созданные экземпляры.

Это объясняет, почему это работает на Mac (L&F по умолчанию установлен на Mac в JVM Apple IIRC), но не работает на Windows. Вы можете быстро проверить это, если перенесете установку L&F непосредственно в ваш главный метод в качестве самого первого вызова (при условии, что ваш главный класс НЕ содержит статически инициализированных экземпляров GUI, конечно).

8
ответ дан 14 December 2019 в 04:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: