Добро пожаловать в первый выпуск
блога конференции Devoxx 2008 , который первоначально назывался
JavaPolis , но из-за проблем с товарными знаками в Sun Microsystems его пришлось переименовать. Это более длинная история. С благодарностью,
Стефан Янссен , организатор и соучредитель, действительно очень хорошо справляется с этой масштабной европейской конференцией по Java, проходящей каждый декабрь. Он поистине великий Чемпион Java за свои невероятные усилия, которые, я говорю вам, не следует недооценивать. Devoxx распродан, ожидается, что 3200 человек со всего мира войдут в Метрополис.
Я столкнулся с Аароном Хьюстоном, который рассказал о многих изменениях, происходящих в Sun Microsystems. Большая часть этого вы уже знаете. Sun объявила о существенном увольнении, и произошла реструктуризация бизнеса по всем направлениям. Если это вас беспокоит, то, пожалуйста, будьте уверены, что каждая крупная компания, особенно многонациональная, переживает оживление. Это изменение, и оно неизбежно.
Кричи ауты!
Луи Эмметт , спикер и член JAVAWUG. Вы наконец-то добрались до конференции Java. Молодец этот человек!
Аарон Хьюстон , команда Sun Technology Outreach
Кэрол Макдональд , команда
Sun Technology Outreach
Майкл Хеттерманн , чемпион Java, Кельн JUG
Дейв Бут , скоро станет бывшим JetBrainer
Брюсом Синдером , единственным и единственным
Кирком Пеппердином , продолжающим настраивать это.
Марко Ван Белен , член JAVAWUG, Бельгия!
Джошуа Мариначчи , член команды JavaFX
Илья Сергей , инженер-программист NetBrains
(фото сверху и справа любезно предоставлено Аароном Хьюстоном)
За последние две недели до Devoxx у меня было много времени, но я загрузил в
Vimeo самый последний
BOF Java Champions BOF из JavaOne .
JavaOne 2008 BOF чемпионов Java от
peter_pilgrim на
Vimeo .
JavaFX Media Play проблема
Вот пример кода для медиаплеера JavaFX 1.0, который не работает с NetBeans 6.5 !
// MediaPlayerTestOrig.fx package fxexamples; // http://www.jhepple.com/support/SampleMovies/WindowsMedia.wmv import javafx.scene.paint.Color; import javafx.scene.media.Media; import javafx.scene.media.MediaPlayer; import javafx.scene.media.MediaView; import javafx.ext.swing.SwingSlider; import javafx.scene.layout.VBox; import javafx.scene.layout.HBox; import javafx.ext.swing.SwingButton; import javafx.scene.Scene; import javafx.scene.transform.Transform; import java.lang.System; import javafx.stage.Stage; import javafx.scene.text.Text; import javafx.scene.text.Font; var DEFAULT_FRAME_WIDTH=600; var DEFAULT_FRAME_HEIGHT=337.5; var playButton: SwingButton; var pauseButton: SwingButton; var stopButton: SwingButton; var timeSlider: SwingSlider; FX.println("__FILE__={__FILE__}"); FX.println("__DIR__={__DIR__}"); var media = Media { source: "{__DIR__}videos/movie.avi" // source: "{__DIR__}videos/WindowsMedia.wmv" }; var myCurrentTime: Duration on replace { // FX.println("myCurrentTime={myCurrentTime}"); if ( not timeSlider.enabled) { timeSlider.value = myCurrentTime.toMillis() as Integer; } }; var sliderValue: Integer on replace { if ( player.status == player.PAUSED ) { player.currentTime = sliderValue * 1ms ; } } var player = MediaPlayer { media: media autoPlay: false currentTime: bind myCurrentTime with inverse; }; var view: MediaView; var stage:Stage = Stage { title: "Peter Pilgrim's JavaFX Example Video Player"; visible: true; width: DEFAULT_FRAME_WIDTH as Integer; height: DEFAULT_FRAME_HEIGHT + 100 as Integer; onClose: function() { java.lang.System.exit( 0 ); } scene: Scene { fill: Color.WHITE content: VBox { spacing: 10 content: [ view = MediaView { mediaPlayer: player }, Text { font: Font { size: 24 } x: 10, y: 30 content: bind "{%6s player.currentTime.toString()}" }, HBox { content: [ playButton = SwingButton { text: "Play" action: function(): Void { player.play(); timeSlider.enabled = false; } }, pauseButton = SwingButton { text: "Pause" action: function(): Void { player.pause(); timeSlider.enabled = true; } }, stopButton = SwingButton { text: "Stop" action: function(): Void { player.pause(); player.currentTime = 0s; timeSlider.enabled = true; } }, timeSlider = SwingSlider { minimum: 0 maximum: bind media.duration.toMillis() as Integer vertical: false enabled: true value: bind sliderValue with inverse; } ] } ] } } } System.out.println( "media.width={media.width}" ); System.out.println( "media.height={media.height}" ); System.out.println( "media.duration={media.duration}" ); System.out.println( "player.currentTime={player.currentTime}" ); // End.
На самом деле проблема в том, что Java Media Component (JMC) не может прочитать URL-адреса типов файлов JAR этого типа.
создание
компиляции HTML-страницы
:
jar:
стандартный запуск:
ошибка с Media: MediaError: медиа не поддерживается: com.sun.media.jmc.MediaUnsupportedException: не поддерживается медиа:
jar: файл: / C: / Users / Peter / Documents / NetBeansProjects / FXExamples / trunk / dist / FXExamples.jar! /Fxexamples/videos/movie.avi
MediaComponent
CREATED
Ошибка с MediaPlayer: MediaError: неподдерживаемый носитель: com.sun.media.jmc.MediaUnsupportedException: неподдерживаемый носитель: jar: файл: / C: / Пользователи / Питер / Документы / NetBeansProjects / FXExamples / trunk / dist / FXExamples.jar! /Fxexamples/videos/movie.avi Запуск
браузера:
jws-run:
midp-run:
run:
BUILD SUCCESSFUL (общее время: 20 секунд)
Теперь для обхода. В файле проекта Ant build.xml переопределите цель «стандартный запуск», чтобы она выполнялась не для файла JAR, а вместо этого для классов. Эта цель работает для NetBeans 6.5, пока команды JavaFX / JMC не исправят ошибку.
<target depends="init,compile,jar" description="Run a main class. (PP)" if="standard.execution.trigger" name="standard-run"> <java classname="${main.class}" classpath="${basedir}/build/compiled:${basedir}/lib/mediacomponent.jar" failonerror="true" fork="true" jvm="${platform.fxhome}/bin/javafx${binary.extension}" jvmargs="${run.jvmargs}"/> </target>
JavaFX на практике, Университетское утро
Ричард Бэйр, Джаспер Поттс и Мартин Бреховский.
Эта сессия была введением в сцену JavaFX. Каркас пользовательского интерфейса для рендеринга графики, созданный как часть JavaFX. Ричард Бэйр и Джаспер Поттс возглавили эту часть. Были отличные демонстрации анимации и медиаплеера JavaFX. Совершенно новые переходы были также очень интересны, поскольку они аналогичны той работе, которую вы действительно выполняли в
Project Goliath :
Мартин Бреховский провел специальную сессию BOF в 19:00 в Devoxx, на которой присутствовали многие, и он вновь представил аспекты Project Nile: JavaFX Production Suite for Designer. Он показал много примеров из JavaOne, включая игру invaders. Изменяя ресурс облака или изображения космического захватчика в Adobe Illustrator, было легко заметить эти изменения в NetBeans 6.5. Он подтвердил, что появится JavaFX Scenegraph 3D, но не смог назвать дату. Та же самая идея производственного пакета для дизайнера, вероятно, пришла бы к 3D дизайнерам и разработчикам. Он мог представить себе экспорт плагинов для Maya, например, или 3DMax. В 2009 году нам придется подождать и посмотреть, что именно команда Sun JavaFX решит сделать.Мартин сказал, что он хотел бы поддерживать плагин для Adobe Flash и, что более важно, поддерживать анимацию и временные шкалы в рабочем процессе дизайнера и разработчика. Теперь поддержка 3D, а также поддержка анимации была бы очень крутой и впечатляющей, если бы вы раньше проектировали во Flash старым способом, используя временные шкалы и ресурсы фильмов, а не в наши дни с добавленной загрузкой ActionScript. Подумайте примерно (Macromedia Flash MX 2004 ;-).
- ScaleTransition
- TranslationTransition
- RotateRotation
- FadeTransition
- SequenceTransition
- ParallelTransition
- ComplexTransition
Мы получили некоторые официальные данные о прогрессе JavaFX.
Java FX 1.1. Выпуск около февраля 2009 г. Выпуск
Java FX 1.5 около июня 2009 г.
JavaFX 1.0 Production Suit позволяет использовать профессиональную графику в вашем приложении.
Ричард Бэйр сказал, надеюсь, что бета-версия FX 2.0 появится во второй половине 2009 года. Вы
искренне поговорили с Джошуа Мариначчи. Похоже, у нас может быть пара реализаций GameKit, которая включает другого парня, для сравнения и сравнения. может быть даже проект с открытым исходным кодом. У меня были реальные проблемы с получением носителей внутри NetBeans для работы. На этой университетской сессии было хорошо подтвердить, что богатые СМИ работают.
Мартин Бреховский продемонстрировал производственную часть JavaFX. Пока утверждая, что он не был дизайнером пользовательского интерфейса. Он показал, как дизайнер может сохранить изображение Adobe Photoshop в виде файла дизайна JavaFX, который он импортировал в NetBeans 6.5. Ресурсы, доступные для разработчика, как взгляды. Это очень крутая идея, потому что почти каждый профессиональный и независимый дизайнер предпочитает использовать Adobe Illustrator или Photoshop.
Введение в Google Android,
Romain Guy
Guy показал нам разработку программного обеспечения для Android, пройдя обзор инструментов Android. Он провел время, объясняя концепцию байт-кодов Dalvik. Он рассказал о том, почему Google предпочитает создавать свой интерпретатор байт-кода. Romain Guy представил обзор платформы,
IDE (которую, как он утверждал, вообще не использует) и других инструментов.
Содержание было немного сухим для моего понимания, но это сложная платформа для тех, кто хочет по-настоящему разрабатывать для мобильного телефона G1. Для этих людей эта сессия была очень важной. Romain Guy продемонстрировал очень классную демонстрацию эмулятора Android. Как хорошо известный увлеченный фотографом, он продемонстрировал разработанное им мобильное приложение PhotoStream, пример приложения для обмена фотографиями, которое извлекало изображения из Flickr. Он освещал разные темы для Android, такие как «Действия», «Содержание», «Категории» и «Действия». Все его примеры были выполнены под руководством Android-плагина Eclipse SDK.
Он также рассказал о графических макетах, доступных на Android, которые, как мне кажется, отсутствуют в сценограмме JavaFX 1.0.
- FrameLayout
- Линейный макет
- RelativeLayout
- TableLayout
- AbsoluteLayout (он осудил это, прямо там и тогда)
Одной из интересных особенностей других мобильных платформ были API-интерфейсы сервисов. Парень описал
услугив качестве безликих компонентов, которые работают в фоновом режиме. Одна только эта функция, вероятно, привлечет внимание разработчиков iPhone, поскольку это означает, что фоновая многопоточность или обработка, по крайней мере, вероятна и лучше реализована в Android. Например, Ромен Гай сказал, что поставщиком фоновых услуг в Android может быть музыкальный проигрыватель, загрузка по сети и т. Д. Вы можете привязать свой код к работающей службе через IDL (Язык определения интерфейса). Поставщики контента позволяют обмениваться данными между приложениями. Примерами провайдеров являются список звонков, адресная книга, фотогалерея и т. Д. На самом деле, я думал, что Android — хорошая разработка для. Каждое средство имеет разрешение безопасности, что означает, что вредоносное приложение не должно быть в состоянии атаковать список вызывающих и загружать его спаммеру.Google снял это, и поэтому он выглядит очень хорошо продуманным, а Eclipse Debugging выглядит знакомо. Создание приложения для мобильного телефона с Android имеет громкие преимущества. Это не полностью открытый исходный код, но для него есть мобильное устройство. Я уверен, что будет больше. Я просто чувствую, что Android примерно на 6 месяцев отстает от iPhone с точки зрения сообщества разработчиков. Кроме того, тот факт, что парень из сообщества, перенесший JavaFX в прошлом году на него, был очень удивительным. Ключевым выводом для Android было то, что система заботится о жизненном цикле приложения. Запуск и остановка прозрачны для пользователя. Конечный пользователь видит только то, что он перемещается между экранами. Парень указал нам, чтобы прочитать документацию дляСоздание приложения для мобильного телефона с Android имеет громкие преимущества. Это не полностью открытый исходный код, но для него есть мобильное устройство. Я уверен, что будет больше. Я просто чувствую, что Android примерно на 6 месяцев отстает от iPhone с точки зрения сообщества разработчиков. Кроме того, тот факт, что парень из сообщества, перенесший JavaFX в прошлом году на него, был очень удивительным. Ключевым выводом для Android было то, что система заботится о жизненном цикле приложения. Запуск и остановка прозрачны для пользователя. Конечный пользователь видит только то, что он перемещается между экранами. Парень указал нам, чтобы прочитать документацию дляСоздание приложения для мобильного телефона с Android имеет громкие преимущества. Это не полностью открытый исходный код, но для него есть мобильное устройство. Я уверен, что будет больше. Я просто чувствую, что Android примерно на 6 месяцев отстает от iPhone с точки зрения сообщества разработчиков. Кроме того, тот факт, что парень из сообщества, перенесший JavaFX в прошлом году на него, был очень удивительным. Ключевым выводом для Android было то, что система заботится о жизненном цикле приложения. Запуск и остановка прозрачны для пользователя. Конечный пользователь видит только то, что он перемещается между экранами. Парень указал нам, чтобы прочитать документацию длятот факт, что парень из сообщества, перенесший JavaFX в прошлом году на него, был очень любопытным. Ключевым выводом для Android было то, что система заботится о жизненном цикле приложения. Запуск и остановка прозрачны для пользователя. Конечный пользователь видит только то, что он перемещается между экранами. Парень указал нам, чтобы прочитать документацию длятот факт, что парень из сообщества, перенесший JavaFX в прошлом году на него, был очень любопытным. Ключевым выводом для Android было то, что система заботится о жизненном цикле приложения. Запуск и остановка прозрачны для пользователя. Конечный пользователь видит только то, что он перемещается между экранами. Парень указал нам, чтобы прочитать документацию для
android.app.Activity .
Парень дает эти ограничения для типичного развития телефона
- Ресурсы в мобильном телефоне обычно очень ограничены по сравнению с настольным ПК
- Процессоры обычно работают намного медленнее, чем их настольные коллеги. Медленный процессор (~ 380 МГц для сохранения заряда батареи)
- Медленная оперативная память, чтобы продлить срок службы батареи)
- Очень мало оперативной памяти (~ 80 МБ на G1)
- Очень мало памяти (~ 55 МБ на G1)
Аль Кода
JavaFX действительно получил свое первое объявление о разработке на конференции Devoxx 2008, хотя это было реализовано на прошлой неделе (4 декабря 2008 г.). Тот факт, что Java на клиентской стороне может воспроизводить видео- и аудиофайлы изначально, абсолютно исключителен. Почему Sun не сделала этого в 2005 году? Если бы они это сделали, это действительно изменило бы игру RIA и, конечно, направление инструментария AJAX. Планеты должны выровняться. Но на самом деле вы не можете почерпнуть то, что могло быть в прошлом. JavaFX 1.0 уже здесь, с некоторыми мелочами, и все еще будет много недоброжелателей. Что касается меня, то теперь JavaFX является долгожданным дополнением к моему инструментарию, это фреймворк и новая платформа, на которой можно создавать захватывающее новое программное обеспечение. Это уже возродило интерес к пользовательскому интерфейсу, особенно к играм, которые у меня были давно, после Java Swing в 1999 и 2000 годах.Я работал даже в прежние дниX Windows / OSF Motif, вы должны взглянуть на эту платформу C / C ++, сравнить и сопоставить то, как далеко мы продвинулись. JavaFX — это прогресс, и, слава Богу, Sun Microsystems чувствует себя хорошо.