1   Copyright © 2012, Oracle and/or its affiliates. All rights   Insert Informaion Protection Policy Classification from S...
JavaFX 2.1 - следующее поколениеклиентской Java                    Presenting withАлександр Кузнецов                      ...
The following is intended to outline our general product    direction. It is intended for information purposes only, and m...
Интерфейс на Java4   Copyright © 2012, Oracle and/or its affiliates. All rights    reserved.
JavaFX5   Copyright © 2012, Oracle and/or its affiliates. All rights    reserved.
Демонстрация6   Copyright © 2012, Oracle and/or its affiliates. All rights    reserved.
Архитектура JavaFX                                                                      UI Controls API                   ...
Архитектура JavaFX                                                                 UI Controls APIДвижок рендеринга    ●  ...
Эффекты9   Copyright © 2012, Oracle and/or its affiliates. All rights    reserved.
Эффекты     ●       Пример использования             node.setEffect(new BoxBlur(10, 10, 2));10   Copyright © 2012, Oracle ...
Трансформации11   Copyright © 2012, Oracle and/or its affiliates. All rights     reserved.
Трансформации     ●       Пример использования             node.setRotate(node.getRotate() + 90);12   Copyright © 2012, Or...
3D-трансформации13   Copyright © 2012, Oracle and/or its affiliates. All rights     reserved.
3D-трансформации             Пример использования             Scene scene = new Scene(root, 500, 500, true);             s...
Граф сцены (Scene graph)     ●       Направленный связный ацикличный граф     ●       Задает структуру графических компоне...
Анимация                                                                              Animation                           ...
Анимация: Transitions17   Copyright © 2012, Oracle and/or its affiliates. All rights     reserved.
Анимация: Transitions     ●       Пример использования:             RotateTransitionBuilder.create()                     ....
Fluent API     ●       Пример использования:             RotateTransitionBuilder.create()                     .node(node) ...
Анимация: Transitions     ●       ParallelTransition, SequentialTransition, PauseTransition                 ParallelTransi...
Анимация: TimelineTimelineBuilder.create()  .keyFrames(    new KeyFrame(Duration.seconds(0), new KeyValue(x, 0), ...),    ...
Анимация: Interpolators22   Copyright © 2012, Oracle and/or its affiliates. All rights     reserved.
Свойства (Properties)     ●      Обычное свойство                private int radius = DEFAULT_RADIUS;                publi...
Свойства (Properties)     ●      JavaFX свойство:                private IntegerProperty radius                        = n...
Простое связывание (Binding)     ●       В одну сторону:                 IntegerProperty x = new SimpleIntegerProperty(); ...
Сложное связывание (Binding)     ●      Сложное связывание:         Label label = new Label();         label.textProperty(...
Демонстрация27   Copyright © 2012, Oracle and/or its affiliates. All rights     reserved.
Архитектура JavaFX                                                                  UI Controls API               ●       ...
Поддержка мультимедиа     ●       H.264 в JavaFX 2.1     ●       кодеки VP6, MP3     ●       полноэкранное видео     ●    ...
Демонстрация30   Copyright © 2012, Oracle and/or its affiliates. All rights     reserved.
Архитектура JavaFX                                                                  UI Controls API         ●         HTML...
Демонстрация32   Copyright © 2012, Oracle and/or its affiliates. All rights     reserved.
Архитектура JavaFX                                                                  UI Controls API Библиотека компонентов...
UI Controls API●      Анимированные диаграммы●      Менеджеры расположения       компонентов●      Стилизация при помощи C...
Демонстрация35   Copyright © 2012, Oracle and/or its affiliates. All rights     reserved.
Что ещё?     ●       Java API     ●       Средства разработки, отладки и тестирования     ●       Взаимодействие с Swing и...
Java API все возможности языка Java:     ●       шаблоны     ●       многопоточность     ●       аннотации     ●       дос...
Средства     ●       разработка:                ●         любые Java IDE: NetBeans, Eclipse, IDEA     ●       отладка:    ...
Scene Builder     ●       Подробнее в докладе Сергея Гринева39   Copyright © 2012, Oracle and/or its affiliates. All right...
FXML     example.fxml:     ...     <GridPane id="gridPane1" ...>         <children>             <Label id="label1" text="И...
JavaFX в Swing и SWT приложенияхpublic class JFXPanel       extends javax.swing.JComponent {    …    void setScene(Scene n...
Развертывание     ➔       JAR-файл     ➔       JNLP     ➔       Апплет42   Copyright © 2012, Oracle and/or its affiliates....
Что будет в JavaFX 2.1     ●       поддержка Mac OS     ●       beta-поддержка Linux     ●       JavaScript -> Java вызовы...
Возможности JavaFX     ●       Богатая графика и анимация     ●       Мультимедиа     ●       HTML 5.0     ●       UI-элем...
Демонстрация45   Copyright © 2012, Oracle and/or its affiliates. All rights     reserved.
Ссылки     ●       JavaFX http://javafx.com     ●       Примеры:             http://www.oracle.com/technetwork/java/javafx...
47   Copyright © 2012, Oracle and/or its affiliates. All rights     reserved.
JavaFX 2.1 - следующее поколение клиентской Java
Upcoming SlideShare
Loading in …5
×

JavaFX 2.1 - следующее поколение клиентской Java

5,334 views

Published on

Описание возможностей JavaFX - библиотеки пользовательского интерфейса для Java с примерами.

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,334
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
71
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

JavaFX 2.1 - следующее поколение клиентской Java

  1. 1. 1 Copyright © 2012, Oracle and/or its affiliates. All rights Insert Informaion Protection Policy Classification from Slide 7 reserved.
  2. 2. JavaFX 2.1 - следующее поколениеклиентской Java Presenting withАлександр Кузнецов LOGO
  3. 3. The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.3 Copyright © 2012, Oracle and/or its affiliates. All rights Insert Informaion Protection Policy Classification from Slide 7 reserved.
  4. 4. Интерфейс на Java4 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  5. 5. JavaFX5 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  6. 6. Демонстрация6 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  7. 7. Архитектура JavaFX UI Controls API Из чего состоит JavaFX?7 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  8. 8. Архитектура JavaFX UI Controls APIДвижок рендеринга ● Высокопроизводительный ● Аппаратно-ускоренный ● Легковесный ● Не использующий AWT или Swing8 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  9. 9. Эффекты9 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  10. 10. Эффекты ● Пример использования node.setEffect(new BoxBlur(10, 10, 2));10 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  11. 11. Трансформации11 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  12. 12. Трансформации ● Пример использования node.setRotate(node.getRotate() + 90);12 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  13. 13. 3D-трансформации13 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  14. 14. 3D-трансформации Пример использования Scene scene = new Scene(root, 500, 500, true); scene.setCamera(new PerspectiveCamera()); ... node.setRotationAxis(Rotate.Y_AXIS); node.setRotate(node.getRotate() + 20);14 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  15. 15. Граф сцены (Scene graph) ● Направленный связный ацикличный граф ● Задает структуру графических компонентов: ● порядок отрисовки ● порядок обработки событий ● эффекты и трансформации Scene root Parent children снизу сверху15 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  16. 16. Анимация Animation Transition Timeline FadeTransition, FillTransition, ParallelTransition, PathTransition, PauseTransition, RotateTransition, ScaleTransition, SequentialTransition, StrokeTransition, TranslateTransition16 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  17. 17. Анимация: Transitions17 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  18. 18. Анимация: Transitions ● Пример использования: RotateTransitionBuilder.create() .node(node) .byAngle(90) .build().play();18 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  19. 19. Fluent API ● Пример использования: RotateTransitionBuilder.create() .node(node) .byAngle(90) .build().play(); RotateTransition rotateTransition = new RotateTransition(); rotateTransition.setNode(node); rotateTransition.setByAngle(90); rotateTransition.play();19 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  20. 20. Анимация: Transitions ● ParallelTransition, SequentialTransition, PauseTransition ParallelTransitionBuilder.create() .cycleCount(Timeline.INDEFINITE) .autoReverse(true) .node(duke) .children( TranslateTransitionBuilder.create() .byY(50) .build(), FadeTransitionBuilder.create() .toValue(0) .build() ) .build().play();20 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  21. 21. Анимация: TimelineTimelineBuilder.create() .keyFrames( new KeyFrame(Duration.seconds(0), new KeyValue(x, 0), ...), new KeyFrame(Duration.seconds(5), new KeyValue(x, 100), ...), ...).build(); Как значения изменяются во времени Key value x=0 x = 100 0s 1s 2s 3s 4s 5s 6s Keyframes21 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  22. 22. Анимация: Interpolators22 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  23. 23. Свойства (Properties) ● Обычное свойство private int radius = DEFAULT_RADIUS; public int getRadius() { return radius; } public void setRadius(int radius) { this.radius = radius; }23 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  24. 24. Свойства (Properties) ● JavaFX свойство: private IntegerProperty radius = new SimpleIntegerProperty(DEFAULT_RADIUS); public int getRadius() { return radius.get(); } public void setRadius(int radius) { this.radius.set(radius); } public IntegerProperty radiusProperty() { return radius; }24 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  25. 25. Простое связывание (Binding) ● В одну сторону: IntegerProperty x = new SimpleIntegerProperty(); IntegerProperty y = new SimpleIntegerProperty(); x.bind(y.add(5)); // x bind y + 5 ● В обе стороны: IntegerProperty z = new SimpleIntegerProperty(); z.bindBidirectional(y); // z bind y with inverse25 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  26. 26. Сложное связывание (Binding) ● Сложное связывание: Label label = new Label(); label.textProperty().bind(new ObjectBinding<String>() { { bind(x, z); } @Override protected String computeValue() { return x.get() == z.get() ? "Значения равны" : "x = " + x.get() + ", z = " + z.get(); } }); ● Полный контроль над связыванием ● unbind(), addListener(), removeListener(), isBound()26 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  27. 27. Демонстрация27 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  28. 28. Архитектура JavaFX UI Controls API ● Видео ● Аудио28 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  29. 29. Поддержка мультимедиа ● H.264 в JavaFX 2.1 ● кодеки VP6, MP3 ● полноэкранное видео ● канал прозрачности ● полностью интегрировано в графическую систему ● мгновенное воспроизведение звуков (low latency)29 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  30. 30. Демонстрация30 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  31. 31. Архитектура JavaFX UI Controls API ● HTML 5.0 ● взаимодействие JavaScript и JavaFX ● доступ к содержимому страницы31 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  32. 32. Демонстрация32 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  33. 33. Архитектура JavaFX UI Controls API Библиотека компонентов для построения графического пользовательского интерфейса ● написаны на JavaFX ● открытый исходный код http://openjdk.java.net/projects/openjfx/33 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  34. 34. UI Controls API● Анимированные диаграммы● Менеджеры расположения компонентов● Стилизация при помощи CSS34 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  35. 35. Демонстрация35 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  36. 36. Что ещё? ● Java API ● Средства разработки, отладки и тестирования ● Взаимодействие с Swing и SWT ● Развертывание (Deployment) ● Что нового в версии JavaFX 2.1?36 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  37. 37. Java API все возможности языка Java: ● шаблоны ● многопоточность ● аннотации ● доступен из любого JVM языка: Ruby, Scala, Groovy37 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  38. 38. Средства ● разработка: ● любые Java IDE: NetBeans, Eclipse, IDEA ● отладка: ● любые средства для языка Java ● тестирование: ● Jemmy3 http://jemmy.java.net/38 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  39. 39. Scene Builder ● Подробнее в докладе Сергея Гринева39 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  40. 40. FXML example.fxml: ... <GridPane id="gridPane1" ...> <children> <Label id="label1" text="Имя" ... /> <TextField id="textField1" ... /> ... example.java: ... Parent root = FXMLLoader.load( getClass().getResource("example.fxml")); stage.setScene(new Scene(root)); ...40 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  41. 41. JavaFX в Swing и SWT приложенияхpublic class JFXPanel extends javax.swing.JComponent { … void setScene(Scene newScene) {...} …}public class FXCanvas extends org.eclipse.swt.widgets.Canvas { … void setScene(Scene newScene) {...} …}41 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  42. 42. Развертывание ➔ JAR-файл ➔ JNLP ➔ Апплет42 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  43. 43. Что будет в JavaFX 2.1 ● поддержка Mac OS ● beta-поддержка Linux ● JavaScript -> Java вызовы ● а также: ● улучшения в FXML, в рендеринге шрифтов, в SplitPane, в классах Task и Service, в поддержке меню приложения ● новые диаграммы, новый компонент ComboBox ● поддержка форматов AAC, H.264/MPEG43 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  44. 44. Возможности JavaFX ● Богатая графика и анимация ● Мультимедиа ● HTML 5.0 ● UI-элементы ● FXML и CSS ● Апплет/JNLP/JAR ● Интеграция со Swing и SWT44 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  45. 45. Демонстрация45 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  46. 46. Ссылки ● JavaFX http://javafx.com ● Примеры: http://www.oracle.com/technetwork/java/javafx/samples/index.html ● JavaFX и Scala http://code.google.com/p/scalafx/ ● JavaFX и Groovy http://groovyfx.org/46 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  47. 47. 47 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

×