LINUX.ORG.RU

История изменений

Исправление iZEN, (текущая версия) :

SWT — это JNI-обёртка над Gtk2 и Comctl3d.dll. Использует контролы соответствующих оконных систем. К Swing не относится никак. Все приложения на Swing выглядят одинаково что на *nix, что на win*. Нюансы могут быть только с отрисовкой шрифтов.

Для запуска приложения на Swing с нужной «шкуркой», которая эмулирует внешний вид и поведение контролов того или иного тулкита, в строке запуска java необходимо указать (например):

java -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel MyApp

java -Dswing.defaultlaf=com.sun.java.swing.plaf.windows.WindowsLookAndFeel MyApp

java -Dswing.defaultlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel MyApp

java -Dcom.sun.java.swing.plaf.motif.MotifLookAndFeel -jar MyApp.jar

Этим, если в самой программе жёстко не запрограммирована установка типа L&F (UIManager.setLookAndFeel(«javax.swing.plaf.metal.MetalLookAndFeel»);), обеспечивается отрисовка всех окон приложения в стилях соответствующих тулкитов (первые два системных не переносимы между *nix и win*). Однако, этого мало — заголовки окон (обрамление WM) останутся нативными. Заменить обрамление с WM на Swing заголовок можно только в коде самой программы. Как это сделать программисту, можно посмотреть в исходниках демонстрационных приложений к JDK; в исходниках JEdit это есть, так как допускает полную пользовательскую настройку своего внешнего вида. Пользователь же при запуске обычного Swing-приложения заменить отображения заголовков окон из командной строки запуска или свойствами среды не в состоянии.

Так вот, целосный GUI на Swing предполагает не только отображение содержимого окон в раскладке отрисовываемого тулкита (своего собственного, нативного, космического), но и заголовки окон, диалоги сохранения файлов и т.д. тоже представляются в стиле и поведении заданного Swing UI. У программистов есть выбор: показать программу на Swing такой, какая она есть без настроек, либо максимально приблизить её вид к нативному. У пользователя довольно ограниченный оперативный простор по изменению внешнего вида Swing-приложений, в файле <JAVA_HOME>/lib/swing.properties он может задать предпочитаемый класс UI:

swing.defaultlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel
и в общем-то всё.

Исходная версия iZEN, :

SWT — это JNI-обёртка над Gtk2 и Comctl3d.dll. Использует контролы соответствующих оконных систем. К Swing не относится никак. Все приложения на Swing выглядят одинаково что на *nix, что на win*. Нюансы могут быть только с отрисовкой шрифтов.

Для запуска приложения на Swing с нужной «шкуркой», которая эмулирует внешний вид и поведение контролов того или иного тулкита, в строке запуска java необходимо указать (например):

java -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel MyApp

java -Dswing.defaultlaf=com.sun.java.swing.plaf.windows.WindowsLookAndFeel MyApp

java -Dswing.defaultlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel MyApp

java -com.sun.java.swing.plaf.motif.MotifLookAndFeel -jar MyApp.jar

Этим, если в самой программе жёстко не запрограммирована установка типа L&F (UIManager.setLookAndFeel(«javax.swing.plaf.metal.MetalLookAndFeel»);), обеспечивается отрисовка всех окон приложения в стилях соответствующих тулкитов (первые два системных не переносимы между *nix и win*). Однако, этого мало — заголовки окон (обрамление WM) останутся нативными. Заменить обрамление с WM на Swing заголовок можно только в коде самой программы. Как это сделать программисту, можно посмотреть в исходниках демонстрационных приложений к JDK; в исходниках JEdit это есть, так как допускает полную пользовательскую настройку своего внешнего вида. Пользователь же при запуске обычного Swing-приложения заменить отображения заголовков окон из командной строки запуска или свойствами среды не в состоянии.

Так вот, целосный GUI на Swing предполагает не только отображение содержимого окон в раскладке отрисовываемого тулкита (своего собственного, нативного, космического), но и заголовки окон, диалоги сохранения файлов и т.д. тоже представляются в стиле и поведении заданного Swing UI. У программистов есть выбор: показать программу на Swing такой, какая она есть без настроек, либо максимально приблизить её вид к нативному. У пользователя довольно ограниченный оперативный простор по изменению внешнего вида Swing-приложений, в файле <JAVA_HOME>/lib/swing.properties он может задать предпочитаемый класс UI:

swing.defaultlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel
и в общем-то всё.