Spec-Zone .ru
спецификации, руководства, описания, API
|
Изменения Swing и Новые Функции Java 2 SDK, Standard Edition, v 1.4 документа описывают изменения для всех 1.4.* выпусков. Этот документ обеспечивает ссылки к изменениям, определенным для 1.4.1 и 1.4.2 выпусков.
Для Swing, этот выпуск прежде всего функции bugfixes. Ошибки, которые были исправлены, включают:
Фокусируйте связанные ошибки:
Перетащите и отбросьте связанные ошибки:
Разное:
В дополнение ко многим bugfixes этот выпуск обладает этими новыми улучшениями:
Отчеты bugtraq, которые соответствуют этому изменению:
Этот выпуск функции много улучшений производительности JFileChooser
. В некоторых ситуациях, JFileChooser
теперь выполняет в 300 раз быстрее.
Выпуск 1.4.2 представляет поддержку стандартного появления Microsoft Windows XP как значение по умолчанию, работая на платформе Windows XP. Этот стиль автоматически появляется, если Ваше приложение использует Swing WindowsLookAndFeel
class (любой посредством UIManager.getSystemLookAndFeelClassName()
или явно используя com.sun.java.swing.plaf.windows.WindowsLookAndFeel
) на машине, выполняющей операционную систему Windows XP. Следующий пример иллюстрирует привилегированный способ установить стиль, чтобы соответствовать ту из собственной платформы:
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
Если Вы предпочитаете, чтобы Ваше приложение Swing было похоже на классическое Приложение Windows, можно повернуться взгляда XP, использующего системное свойство swing.noxp=true
. Это обычно используется в качестве параметра командной строки, eg:
java -Dswing.noxp=true -jar SwingSet2.jar
Отметьте что swing.noxp
свойство не может поддерживаться в будущих выпусках.
Выпуск 1.4.2 представляет стиль, основанный на UIManager.setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFeel")
или определяя системное свойство swing.defaultlaf
быть com.sun.java.swing.plaf.gtk.GTKLookAndFeel
. В следующем выпуске мы сделаем UIManager.getSystemLookAndFeelClassName()
возвратите этот стиль когда приспособлено.
GTK + стиль может быть настроен посредством
swing.gtkthemefile
существует, проанализируйте это и остановка, например: java -Dswing.gtkthemefile=/tmp/customTheme -jar SwingSet2.jar
.user.home/.gtkrc-2.0
существует, проанализируйте это и продолжайте.gnome.net/ThemeName
который определяется, используя Default
как THEMENAME. user.home/.themes/THEMENAME/gtk-2.0/gtkrc
существует анализируют это и остановка.swing.gtkthemedir
существует и файл swing.gtkthemedir/THEMENAME/gtk-2.0/gtkrc
существует, проанализируйте это и остановка.swing.gtkthemedir
не существует и файл /usr/share/themes/THEMENAME/gtk-2.0/gtkrc
существует, проанализируйте это и остановка.swing.gtkthemedir
определяется синтаксический анализ swing.gtkthemedir/THEMENAME/gtk/gtkrc
, иначе синтаксический анализ /usr/share/themes/THEMENAME/gtk/gtkrc
.Одним путем GTK + может быть настроен, посредством Default
, pixmap
, и bluecurve
механизмы. Мы исследуем способы открыть API, чтобы учесть создание дополнительных механизмов GTK. Посещение
GTK + учитывает определение шрифтов двумя способами: использование GTKLookAndFeel
не будет точно соответствовать собственный GTK + приложение. Мы исследуем способы иметь дело с этим. Одна опция должна заменить Ваш pango файл шрифта версией, эквивалентной font.properties файлу Java. Дополнительно мы в настоящий момент игнорируем XLFDs и передаем строки Pango (после отображения sans к sansserif и моноширинный к моноширинному) непосредственно к a java.awt.Font
.
GTK + не обеспечивает MDI (JInternalFrame
) возможности, и при этом это непосредственно не поддерживают theming высокоуровневых окон, скорее который оставляют до WindowManager. Для классов MDI Swing мы поддерживаем theming посредством Crux
и Bluecurve
темы. Если мы не можем определить местоположение ни одной из этих тем, мы отступаем к нашей собственной теме. Можно использовать системное свойство swing.metacitythemename
чтобы назвать определенную тему, чтобы использовать, иначе мы заглянем user.dir/.gconf/apps/metacity/general/%gconf.xml
определить имя темы и заглянуть /usr/share/themes/THEMENAME/metacity-1/metacity-theme-1.xml
или /usr/gnome/share/themes/THEMENAME/metacity-1/metacity-theme-1.xml
для фактического файла ресурсов. Следующий пример показывает, как инициировать Swing, чтобы использовать определенную метагородскую тему:
java -Dswing.metacitythemename=Bluecurve -jar SwingSet2.jar
GTK + файлы ресурсов учитывают настройку многих опций стили вне взгляда. В 1.4.2 мы поддерживаем основные конфигурации стиля (fg, bg, основа..), gtk-имя-шрифта, gtk-icon-sizes, значки запаса (для optionpane), focus-line-width, дополнение фокуса, образец строки фокуса, внутреннее дополнение, теневой тип (для строк меню), и граница канавки.
GTK обеспечивает механизм, для которого запущение приложений может поднять изменение темы и автоматически обновить UI, это будет поддерживаться в будущей версии стили Swing GTK.
Правильно поддерживая GTK + стиль, поставленный много проблем к текущей архитектуре Swing. В Swing непрозрачный компонент ВСЕГДА красит свой фон посредством метода обновления ComponentUI в GTK +, ненепрозрачный компонент может или, возможно, не красит фон, в зависимости от механизма. Чтобы правильно зеркально отразить GTK +, много Компонентов, которые ранее были непрозрачны, были сделаны ненепрозрачными (посредством installUI метода подкласса ComponentUI). Дополнительно, потому что вид компонента может измениться основанный на иерархии включения, которую может изменить непрозрачность после того, как конструктор завершился. Разветвление этого - то, что, если Вы вызываете setOpaque () на компоненте, он может измениться из-под Вас. Мы фиксируем это в следующем выпуске.
GTK + вызовы в механизм, чтобы нарисовать декоративные обрамления перед фактическим содержанием виджета красятся. Некоторые механизмы, наиболее особенно механизм пиксельной карты, полагаются на это упорядочивание, чтобы правильно представить художественные оформления позади содержания. В Swing представляется граница после того, как содержание виджета красится. В GTKLookAndFeel мы устанавливаем Границу только, чтобы обеспечить пространство, и позволить UI делать фактический рендеринг декоративных обрамлений как часть метода краски. Разветвление этого - то, что, если Вы устанавливаете Границу на виджете с GTKLookAndFeel, Вы не будете, вероятно, получать эффект, который Вы после. Снова, мы исследуем альтернативы и обеспечим лучшее решение в следующем выпуске.