вторник, 11 декабря 2012 г.

Использование Look And Feel в приложениях на java

Поддержка Look And Feel - очень важная и достаточно необычная особенность языка программирования java. С использованием Look And Feel можно одной командой изменить стиль всех окон и диалогов в приложении. Существует около десятка стандартных Look And Feel встроенных в java, а помимо этого возможна установка сторонних Look And Feel и самостоятельное создание их. LookAndFeel крайне удобны тем, что с их помощью можно стандартизировать оформление всего приложения, и затем, при необходимости, легко изменять стили оформления одновременно для всех элементов приложения.

Большинство операций, связанных с 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 применился.

Комментариев нет:

Отправить комментарий

Ярлыки

java (31) оптимизация (7) CPanel (5) svn (5) windows xp (5) ошибка (5) свой сервер (5) файлы и папки (5) gui (4) регулярные выражения (4) jacoco (3) redmine (3) windows (3) автоматизация (3) защита данных (3) резервное копирование (3) сервер (3) JavaScript (2) Oracle SQL (2) adsl модем (2) apache maven (2) apache tomcat (2) coverage (2) dropbox (2) excel (2) firewall (2) netbeans (2) office 2007 (2) samsung (2) system tray (системный трей) (2) xerox (2) вирусы (2) принтер (2) сериализация (2) удаленный рабочий стол (2) HTML (1) JFileChooser (1) MySQL (1) Nokia (1) Ovi (1) P660R-T1 (1) WakeOnLan (1) blogger.com (1) ctfmon.exe (1) email (1) flash память (1) ftp (1) integration testing (1) ip (1) jQuery (1) jvisualWm (1) log4j (1) look and feel (1) myBatis (1) php (1) serialVersionUID (1) skype (1) smtp (1) ssh (1) swing (1) torrents (1) unit-testing (1) unix (1) vpn (1) windows 7 (1) xStarter (1) zip (1) безопасность (1) вход в систему (1) дизайн (1) документация (1) заправка (1) интернет (1) логирование (1) мышь (1) патч (1) перенос (1) печать (1) плагины (1) почтовые сообщения (1) программирование (1) процессы (1) прошивка (1) сеть (1) сеть. ошибка (1) скрытые файлы (1) списки (1) фильтрация (1) фокус (1) часовые пояса (1) шифрование (1) экран (1)