Plataforma Java x Plataforma .NET
                            Edição DF 2009

                           Tema 4
Aplicações desktop (GUI) e aplicações ricas para Internet (RIA)




    Visão geral da Java SE 6.0/7.0
          (AWT, Swing, ...)
JavaFX 1.2 para desktops e para Web


              José Raphael Teixeira Marques
            Mestrando em Informática pela UFPB
                  joseraphael@di.ufpb.br
Edição DF 2009
Plataforma Java x Plataforma .NET                                                           Agenda
                                                                                 AWT / Swing
                                                                               Java SE 6.0 / 7.0
                                                                                    JavaFX
                                                                                 JavaFX Script
                                                                                Demonstração
                                                                        Interface Gráfica com JavaFX
                                                                                Os problemas
                                                                             Por onde começar?
                                                                                  E o futuro?
                                                                                  Conclusão
                                            © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB)   2
Edição DF 2009
Plataforma Java x Plataforma .NET           AWT / Swing
                                               AWT (Abstract Window Toolkit)
                                                 Depende de código nativo
                                                 Visual do SO
                                                 Mais rápido
                                                 Mais simples


                                               Swing
                                                 Independente de código nativo
                                                 100% Java
                                                 Pluggable Look and Feel
                                                 Mais complexo


                                               Problema
                                                 Falta uma boa ferramenta para interfaces


                                            © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB)   3
Edição DF 2009
Plataforma Java x Plataforma .NET           Java SE 6.0 / 7.0
                                             Java SE 6.0               Update 10
                                                 Java Kernel
                                                 Applets em             processo separado do Browser
                                                 Scripting
                                                 JavaFX


                                             Java SE 7.0
                                                 Melhorias em  concorrência
                                                 Swing Application Framework
                                                 Java Media Components
                                                 G1 Garbage Collector



                                            © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB)   4
Edição DF 2009
Plataforma Java x Plataforma .NET           JavaFX




                                            © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB)   5
Edição DF 2009
Plataforma Java x Plataforma .NET           JavaFX
                                             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 (e simples) que o Swing




                                            © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB)   6
Edição DF 2009
Plataforma Java x Plataforma .NET           JavaFX Script
                                             Um Java    melhorado
                                             Orientada a objetos e funcional
                                             Fácil leitura
                                             Inferência de tipos
                                             Sequences
                                             Binding e triggers
                                             Focado em criar interfaces




                                            © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB)   7
Edição DF 2009
Plataforma Java x Plataforma .NET




                                             Demonstração




                                            © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB)   8
Edição DF 2009
Plataforma Java x Plataforma .NET           Interface gráfica com JavaFX
                                            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);
                                              }
                                            }



                                            © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB)   9
Edição DF 2009
Plataforma Java x Plataforma .NET           Interface gráfica com JavaFX
                                            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
                                                    }
                                                 }
                                              }
                                            }



                                            © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB)   10
Edição DF 2009
Plataforma Java x Plataforma .NET           Interface gráfica com JavaFX
                                            ...
                                            content: [
                                                Circle {
                                                  centerX:125 centerY:125 radius:90
                                                  fill:Color.WHITE
                                                  stroke:Color.RED strokeWidth:2
                                                }
                                                Rectangle{
                                                  x:45 y:45 width:160 height:160
                                                  arcWidth:15 arcHeight:15
                                                  fill:Color.GREEN
                                                  opacity:0.8 rotate:15
                                                  effect:DropShadow{}
                                                }
                                            ]
                                            ...

                                            © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB)   11
Edição DF 2009
Plataforma Java x Plataforma .NET           JavaFX Media




                                            © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB)   12
Edição DF 2009
Plataforma Java x Plataforma .NET           Suporte a SVG




                                            © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB)   13
Edição DF 2009
Plataforma Java x Plataforma .NET           Workflow designer-desenvolvedor




                                            © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB)   14
Edição DF 2009
Plataforma Java x Plataforma .NET           Formas e Preenchimentos




                                            © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB)
Edição DF 2009
Plataforma Java x Plataforma .NET           Efeitos




                                            © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB)   16 16
Edição DF 2009
Plataforma Java x Plataforma .NET           Controles




                                            © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB)   17
Edição DF 2009
Plataforma Java x Plataforma .NET           Controles




                                            © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB)   18
Edição DF 2009
Plataforma Java x Plataforma .NET           Charts




                                            © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB)   19
Edição DF 2009
Plataforma Java x Plataforma .NET           Skinnable Controls




                                            © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB)   20
Edição DF 2009
Plataforma Java x Plataforma .NET           Integração com JEE




                                            © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB)   21
Edição DF 2009
Plataforma Java x Plataforma .NET           Os problemas
                                             Distribuição:
                                                 Carregamento do Applet
                                                 JavaWebStart em inglês
                                                 JavaFX Runtime online na 1ª vez
                                                 Java Runtime maior


                                             JavaFX Script
                                                 As vezesé preciso escrever muito
                                                 Mudanças de sintaxe
                                                 Não permite binding com objetos Java




                                            © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB)   22
Edição DF 2009
Plataforma Java x Plataforma .NET           Por onde começar?
                                             JavaFX
                                                 http://javafx.com/


                                             JavaFX Programing                          (with Passion!)
                                                 http://www.javapassion.com/javafx/


                                             JavaFX Developer Home
                                                 http://java.sun.com/javafx/




                                            © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB)   23
Edição DF 2009
Plataforma Java x Plataforma .NET           O que temos hoje?
                                             Windows, Linux, Mac
                                                                OS X e Solaris x86
                                             Symbian OS, Windows Mobile e Android


                                             JavaFX 1.2.1 SDK


                                             Netbeans IDE 6.7.1 para                               JavaFX 1.2

                                             JavaFX 1.2 Eclipse-plugin


                                             JavaFX 1.2 Production                             Suite



                                            © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB)   24
Edição DF 2009
Plataforma Java x Plataforma .NET           DataBox
                                             www.reportmill.com/dbox/




                                            © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB)   25
Edição DF 2009
Plataforma Java x Plataforma .NET           JFXtras
                                             jfxtras.org




                                            © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB)   26
Edição DF 2009
Plataforma Java x Plataforma .NET           WidgetFX
                                             widgetfx.org




                                            © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB)   27
Edição DF 2009
Plataforma Java x Plataforma .NET           TwitterFX
                                             http://blogs.herod.net/javafx/twitterfx/




                                            © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB)   28
Edição DF 2009
Plataforma Java x Plataforma .NET           E o futuro?
                                             Investimento da                       Sun/Oracle

                                             Oracle quer a                   interface do OpenOffice em JavaFX

                                             JavaFX Mobile e JavaFX                               TV

                                             Java 7 +            JavaFX 1.3 + JavaFX Autoring Tool




                                            © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB)   29
Edição DF 2009
Plataforma Java x Plataforma .NET           JavaFX Authoring Tool




                                            © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB)   30
Edição DF 2009
Plataforma Java x Plataforma .NET           JavaFX Authoring Tool




                                            © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB)   31
Edição DF 2009
Plataforma Java x Plataforma .NET           JavaFX Authoring Tool




                                            © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB)   32
Edição DF 2009
Plataforma Java x Plataforma .NET           JavaFX Authoring Tool




                                            © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB)   33
Edição DF 2009
Plataforma Java x Plataforma .NET           Conclusão
                                             Prós:
                                                 JavaFX temum grande potencial
                                                 Workflow designer-desenvolvedor
                                                 Ainda tem muito o que evoluir


                                             Contras:
                                                 Problema na distribuição
                                                 Ainda tem muito o que                        evoluir


                                             Dúvida:
                                                 JavaFX Authoring                  Tool?


                                            © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB)   34
Edição DF 2009
Plataforma Java x Plataforma .NET           Contato
                                             Email:
                                                joseraphael@di.ufpb.br


                                             Twitter:
                                                @raphaelmarques


                                             Blog:
                                                raphaelmarques@wordpress.com


                                             Perguntas?



                                            © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB)   35

Aplicações desktop (GUI) e aplicações ricas para internet (RIA)

  • 1.
    Plataforma Java xPlataforma .NET Edição DF 2009 Tema 4 Aplicações desktop (GUI) e aplicações ricas para Internet (RIA) Visão geral da Java SE 6.0/7.0 (AWT, Swing, ...) JavaFX 1.2 para desktops e para Web José Raphael Teixeira Marques Mestrando em Informática pela UFPB joseraphael@di.ufpb.br
  • 2.
    Edição DF 2009 PlataformaJava x Plataforma .NET Agenda AWT / Swing Java SE 6.0 / 7.0 JavaFX JavaFX Script Demonstração Interface Gráfica com JavaFX Os problemas Por onde começar? E o futuro? Conclusão © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB) 2
  • 3.
    Edição DF 2009 PlataformaJava x Plataforma .NET AWT / Swing  AWT (Abstract Window Toolkit)  Depende de código nativo  Visual do SO  Mais rápido  Mais simples  Swing  Independente de código nativo  100% Java  Pluggable Look and Feel  Mais complexo  Problema  Falta uma boa ferramenta para interfaces © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB) 3
  • 4.
    Edição DF 2009 PlataformaJava x Plataforma .NET Java SE 6.0 / 7.0  Java SE 6.0 Update 10  Java Kernel  Applets em processo separado do Browser  Scripting  JavaFX  Java SE 7.0  Melhorias em concorrência  Swing Application Framework  Java Media Components  G1 Garbage Collector © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB) 4
  • 5.
    Edição DF 2009 PlataformaJava x Plataforma .NET JavaFX © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB) 5
  • 6.
    Edição DF 2009 PlataformaJava x Plataforma .NET JavaFX  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 (e simples) que o Swing © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB) 6
  • 7.
    Edição DF 2009 PlataformaJava x Plataforma .NET JavaFX Script  Um Java melhorado  Orientada a objetos e funcional  Fácil leitura  Inferência de tipos  Sequences  Binding e triggers  Focado em criar interfaces © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB) 7
  • 8.
    Edição DF 2009 PlataformaJava x Plataforma .NET  Demonstração © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB) 8
  • 9.
    Edição DF 2009 PlataformaJava x Plataforma .NET Interface gráfica com JavaFX 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); } } © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB) 9
  • 10.
    Edição DF 2009 PlataformaJava x Plataforma .NET Interface gráfica com JavaFX 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 } } } } © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB) 10
  • 11.
    Edição DF 2009 PlataformaJava x Plataforma .NET Interface gráfica com JavaFX ... content: [ Circle { centerX:125 centerY:125 radius:90 fill:Color.WHITE stroke:Color.RED strokeWidth:2 } Rectangle{ x:45 y:45 width:160 height:160 arcWidth:15 arcHeight:15 fill:Color.GREEN opacity:0.8 rotate:15 effect:DropShadow{} } ] ... © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB) 11
  • 12.
    Edição DF 2009 PlataformaJava x Plataforma .NET JavaFX Media © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB) 12
  • 13.
    Edição DF 2009 PlataformaJava x Plataforma .NET Suporte a SVG © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB) 13
  • 14.
    Edição DF 2009 PlataformaJava x Plataforma .NET Workflow designer-desenvolvedor © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB) 14
  • 15.
    Edição DF 2009 PlataformaJava x Plataforma .NET Formas e Preenchimentos © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB)
  • 16.
    Edição DF 2009 PlataformaJava x Plataforma .NET Efeitos © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB) 16 16
  • 17.
    Edição DF 2009 PlataformaJava x Plataforma .NET Controles © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB) 17
  • 18.
    Edição DF 2009 PlataformaJava x Plataforma .NET Controles © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB) 18
  • 19.
    Edição DF 2009 PlataformaJava x Plataforma .NET Charts © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB) 19
  • 20.
    Edição DF 2009 PlataformaJava x Plataforma .NET Skinnable Controls © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB) 20
  • 21.
    Edição DF 2009 PlataformaJava x Plataforma .NET Integração com JEE © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB) 21
  • 22.
    Edição DF 2009 PlataformaJava x Plataforma .NET Os problemas  Distribuição:  Carregamento do Applet  JavaWebStart em inglês  JavaFX Runtime online na 1ª vez  Java Runtime maior  JavaFX Script  As vezesé preciso escrever muito  Mudanças de sintaxe  Não permite binding com objetos Java © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB) 22
  • 23.
    Edição DF 2009 PlataformaJava x Plataforma .NET Por onde começar?  JavaFX  http://javafx.com/  JavaFX Programing (with Passion!)  http://www.javapassion.com/javafx/  JavaFX Developer Home  http://java.sun.com/javafx/ © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB) 23
  • 24.
    Edição DF 2009 PlataformaJava x Plataforma .NET O que temos hoje?  Windows, Linux, Mac OS X e Solaris x86  Symbian OS, Windows Mobile e Android  JavaFX 1.2.1 SDK  Netbeans IDE 6.7.1 para JavaFX 1.2  JavaFX 1.2 Eclipse-plugin  JavaFX 1.2 Production Suite © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB) 24
  • 25.
    Edição DF 2009 PlataformaJava x Plataforma .NET DataBox  www.reportmill.com/dbox/ © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB) 25
  • 26.
    Edição DF 2009 PlataformaJava x Plataforma .NET JFXtras  jfxtras.org © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB) 26
  • 27.
    Edição DF 2009 PlataformaJava x Plataforma .NET WidgetFX  widgetfx.org © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB) 27
  • 28.
    Edição DF 2009 PlataformaJava x Plataforma .NET TwitterFX  http://blogs.herod.net/javafx/twitterfx/ © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB) 28
  • 29.
    Edição DF 2009 PlataformaJava x Plataforma .NET E o futuro?  Investimento da Sun/Oracle  Oracle quer a interface do OpenOffice em JavaFX  JavaFX Mobile e JavaFX TV  Java 7 + JavaFX 1.3 + JavaFX Autoring Tool © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB) 29
  • 30.
    Edição DF 2009 PlataformaJava x Plataforma .NET JavaFX Authoring Tool © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB) 30
  • 31.
    Edição DF 2009 PlataformaJava x Plataforma .NET JavaFX Authoring Tool © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB) 31
  • 32.
    Edição DF 2009 PlataformaJava x Plataforma .NET JavaFX Authoring Tool © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB) 32
  • 33.
    Edição DF 2009 PlataformaJava x Plataforma .NET JavaFX Authoring Tool © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB) 33
  • 34.
    Edição DF 2009 PlataformaJava x Plataforma .NET Conclusão  Prós:  JavaFX temum grande potencial  Workflow designer-desenvolvedor  Ainda tem muito o que evoluir  Contras:  Problema na distribuição  Ainda tem muito o que evoluir  Dúvida:  JavaFX Authoring Tool? © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB) 34
  • 35.
    Edição DF 2009 PlataformaJava x Plataforma .NET Contato  Email: joseraphael@di.ufpb.br  Twitter: @raphaelmarques  Blog: raphaelmarques@wordpress.com  Perguntas? © 2009 JavaVersusDotNet.com.br, José Raphael Teixeira Marques (Mestrando em Informática pela UFPB) 35