Большинство операций, связанных с Look And Feel, могут быть осуществлены с использованием статических методов класса UIManager.
Получить список установленных Look And Feel можно командой UIManager.getInstalledLookAndFeels().
Задать используемый Look And Feel возможно командой UIManager.setLookAndFeel(LookAndFeel newLookAndFeel). Ниже приведен пример задания стандартного MetalLookAndFeel с установкой темы оформления.
public void initMetalLookAndFeel() { try { // устанавливаем используемую тему оформления. Возможные варианты // OceanTheme, DefaultMetalTheme MetalLookAndFeel.setCurrentTheme(new DefaultMetalTheme()); // устанавливаем Look And Feel UIManager.setLookAndFeel(new MetalLookAndFeel()); } catch (UnsupportedLookAndFeelException e) { System.err.println("Can't use the specified look and feel on this platform."); } catch (Exception e) { System.err.println("Couldn't get specified look and feel, for some reason."); } }
Однако, как можно заметить, стандартные Look And Feel далеко не всегда сочетаются с темой оформления других окон используемой операционной системы. Существует возможность получить наиболее подходящий Look And Feel операционной системы, в которой выполняется программа java - команда UIManager.getSystemLookAndFeelClassName(). Для Windows XP, на мой взгляд, данная функция действительно возвращает наиболее сочетающийся с интерфейсом Windows из стандартных Look And Feel - com.sun.java.swing.plaf.windows.WindowsLookAndFeel.
Пример с методом UIManager.getSystemLookAndFeelClassName() показан ниже
public void initSystemLookAndFeel() { try { String systemLookAndFeelClassName = UIManager.getSystemLookAndFeelClassName(); // устанавливаем LookAndFeel UIManager.setLookAndFeel(systemLookAndFeelClassName); } catch (UnsupportedLookAndFeelException e) { System.err.println("Can't use the specified look and feel on this platform."); } catch (Exception e) { System.err.println("Couldn't get specified look and feel, for some reason."); } }
Обычно, предпочтительный Look And Feel задается при инициализации приложения, до создания каких-либо графических окон и форм. Если же есть необходимость установить Look And Feel после инициализации форм, то, следует, после установки требуемого Look And Feel, вызвать метод для обновления графического вида компонента и всех дочерних компонентов SwingUtilities.updateComponentTreeUI(Component component), чтобы новый Look And Feel применился.
Комментариев нет:
Отправить комментарий