Introdução ao JavaFX

4,858 views
4,869 views

Published on

Slides da palestra sobre JavaFX apresentada na UNIPE

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,858
On SlideShare
0
From Embeds
0
Number of Embeds
2,278
Actions
Shares
0
Downloads
121
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Introdução ao JavaFX

  1. 1. José Raphael Teixeira Marques Mestrando em Informática (UFPB) raphaelmarques.wordpress.com joseraphael@di.ufpb.br
  2. 2.  O que é JavaFX?  Exemplos com JavaFX  Por que JavaFX?  JavaFX Script  GUI com JavaFX Script  Informações adicionais
  3. 3.  Java “Effects”  JavaFX é a melhor forma para criar conteúdo rico expressivo. Baseado na Plataforma Java, JavaFX oferece uma atraente combinação de onipresença, capacidade, expressividade e performance. 3
  4. 4. 4
  5. 5. 5
  6. 6. 6
  7. 7. 7
  8. 8. 9
  9. 9. 10
  10. 10. 11
  11. 11. 12
  12. 12.  Uma única plataforma RIA para todas as telas  Mercado de amplo alcance  Workflow designer-desenvolvedor  Runtime poderoso  Liberdade do browser  Compatibilidade com tecnologias Java  Muito mais poderoso que o Swing 17
  13. 13.  Tipos de dados básicos (não podem ser null)  Integer  Number  Boolean  Duration  String  Sequence  Function 19
  14. 14. var string1 = "raphael"; var string2 : String = "raphael"; var integer1 = 3; var integer2 : Integer = 3; var number1 = 3.0; var number2 : Number = 3; var number4 = integer1 + number1; var retorno = algumMetodo(); 20
  15. 15. println("raphael marques"); //raphael marques println('raphael marques'); //raphael marques println("raphael 'marques'"); //raphael 'marques' println('raphael "marques"'); //raphael "marques" 21
  16. 16. var s1 = "raphael"; var s2 = "marques"; println("{s1} {s2}"); //raphael marques "o valor de x eh: {x}" "o valor de x eh: {objeto.getX()}" "o valor no ponto ({x},{y}) eh {get(x,y)}" 22
  17. 17. var t1 : Duration = 1ms; var t2 = 1s; var t3 = 1m; var t4 = 1h; var t5 = 1s + 500ms; var t6 = 1s * 2; var t7 = 1s / 2; 23
  18. 18. def PI = 3.1416; function calcArea(raio: Number): Number{ return PI * raio * raio; } var raio = 5; var area = calcArea(raio); 24
  19. 19. def PI = 3.1416; function calcArea(raio: Number) { return PI * raio * raio; } var raio = 5; var area = calcArea(raio); 25
  20. 20. def PI = 3.1416; function calcArea(raio: Number) { PI * raio * raio; } var raio = 5; var area = calcArea(raio); 26
  21. 21. def PI = 3.1416; var calcArea = function (raio: Number){ PI * raio * raio; }; var calcPerimetro = function(raio: Number){ 2 * PI * raio; }; var calc = calcArea; println(calc(5)); calc = calcPerimetro; println(calc(5)); 27
  22. 22. var x = 1; var y = bind x; var z = bind y * 2; var w = bind x with inverse; println("{x} {y} {z} {w}"); //1 1 2 1 x = 2; println("{x} {y} {z} {w}"); //2 2 4 2 28
  23. 23. var x = 10; var y = 20; var rect1 = Rectangle{ x: bind x; y: bind y; }; var rect2 = bind Rectangle{ x: x; y: y; }; 29
  24. 24. var a = 1 on replace old{ println("changing a"); println("old value: {old}"); println("new value: {a}"); }; 30
  25. 25. var seq1 : Integer[ ] = [1,2,3,4,5,6,7,8,9,10]; var seq2 = [1..10]; var seq3 = [1..10 step 2]; var seq4 = [seq1 , seq2 , seq3]; var seq5 = seq1[4..]; var seq6 = seq1[i | i mod 2 == 0]; Operações: insert, delete, reverse, ==
  26. 26. { var a = 3; ... y = a; } if(a > 0) {x = a} else {x = a+b}; for(i in [1..5]){ insert i*i into quadrados; }
  27. 27. var y = { var a = 3; ... a; } var x = if(a > 0) {a} else {a+b}; var quadrados = for(i in [1..5]){ i*i; }
  28. 28. public class HelloWorldSwing{ public static void main(String[] args){ JFrame frame = new JFrame("HelloWorld Swing"); JLabel label = new JLabel("Hello World"); frame.getContentPane().add(label); frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true); } } 35
  29. 29. Stage { title: "Hello World em JavaFX" width: 250 height: 80 scene: Scene { content: Text { content: "Hello World!" x: 10 y: 30 font : Font { size : 24 } } } } 36
  30. 30. Stage{ title: "Declarar eh facil!" width: 250 height: 250 } 37
  31. 31. Stage{ title: "Declarar eh facil!" scene: Scene{ width: 250 height: 250 } } 38
  32. 32. Stage{ ... scene: Scene{ ... content: [ Rectangle{ x: 45 y: 45 width: 160 height: 160 arcWidth: 15 arcHeight: 15 fill: Color.GREEN } ] } } 39
  33. 33. ... content: [ Rectangle{ ... } Circle{ centerX: 125 centerY: 125 radius: 90 fill: Color.WHITE stroke: Color.RED } ] ... 40
  34. 34. ... content: [ Circle{ ... } Rectangle{ ... } ] ... 41
  35. 35. ... content: [ Circle{ ... } Rectangle{ ... opacity: 0.6 } ] ... 42
  36. 36. ... Rectangle{ ... rotate: 15 } ... 43
  37. 37. ... Rectangle{ ... effect: Lighting{ surfaceScale: 5 } } ... 44
  38. 38. ImageView{ image: Image{ url: "{__DIR__}imagem.png" } rotate: 15 scaleX: 2 } 45
  39. 39. ... Group{ translateX: 15 Group translateY: 15 content: [ Text{ ... } Translate Circle{ ... } ] } ... Text Circle 46
  40. 40. var x: Number; var px: Number; var y: Number; var py: Number; ... Rectangle{ x: bind x y: bind y ... onMousePressed: function(e: MouseEvent){ px = x; py = y; } onMouseDragged: function(e: MouseEvent){ x = px + e.dragX; y = px + e.dragY; } } ... 47
  41. 41. 48
  42. 42. 49
  43. 43. 50
  44. 44. Donut{ x: 100 y: 100 raioExterno: 80 raioInterno: 50 fill: Color.RED stroke: Color.BLACK } 51
  45. 45. var timeline = Timeline { keyFrames : [ KeyFrame { time: 2s values : variavel => 100 tween Interpolator.LINEAR } ] }; timeline.play(); 52
  46. 46. 53
  47. 47. 54
  48. 48. 55
  49. 49. 56
  50. 50. 57
  51. 51.  Stack: 58
  52. 52. 59
  53. 53.  Suporte para RSS e ATOM feeds  Suporte a múltiplas telas  Armazenamento local  Herança múltipla  Algumas palavras “reservadas” não são mais reservadas  init, step, replace, etc...
  54. 54. Main.fx: Locale.setDefault(Locale.ENGLISH); ... var button = Button{ text: ##“enviar” } Main_en.fxproperties: “enviar” = “send”
  55. 55.  Distribuição:  Carregamento do Applet  JavaWebStart em inglês  JavaFX Runtime online na 1ª vez  Java Runtime maior  Integração com Java:  Bind com objetos Java 63
  56. 56.  JavaFX  http://javafx.com/  JavaFX Developer Home  http://java.sun.com/javafx/  JavaFX Programing (with Passion!)  http://www.javapassion.com/javafx/ 64
  57. 57.  Windows, Linux, Mac OS X e Solaris x86  Windows Mobile 6  JavaFX 1.2.1 SDK  Netbeans IDE 6.7.1 para JavaFX 1.2  JavaFX 1.2 Eclipse-plugin  JavaFX 1.2 Production Suite  Plugin para Adobe Illustrator e Adobe Photoshop  Media Factory ▪ JavaFX Graphics Viewer e SVG Converter 65
  58. 58.  De terceiros:  Framework MVC (Griffon)  DataBox  CRUDFx  FXtras  WidgetFX  Da Sun:  Investimento da Sun/Oracle  JavaFX Mobile e JavaFX TV  Java Autoring Tool (vídeo no final) ▪ Vídeo 66
  59. 59.  Prós:  JavaFX tem um grande potencial  Workflow designer-desenvolvedor  A comunidade está ativa  A corrida está só começando  Contras:  Ainda tem muito o que evoluir  Problema na distribuição 67
  60. 60. José Raphael Teixeira Marques Mestrando em Informática (UFPB) raphaelmarques.wordpress.com joseraphael@di.ufpb.br

×