José Raphael Teixeira Marques   Mestrando em Informática (UFPB)
                                raphaelmarques.wordpress.com
                                joseraphael@di.ufpb.br
   Introdução ao JavaFX

   GUI com JavaFX

   Novidades do JavaFX 1.2
   Por onde começar?

   Conclusões

                              2
3
4
   Java “Efequis”?
   JavaFX é uma linguagem?
   Vou perder o que fiz em Java?
   Porque não encontro material sobre JavaFX?
   Por que não usar Swing?
   Então JavaFX vai matar o Swing?
   E a Oracle? O que pensa disso?

                                                 5
   Uma única plataforma RIA para todas as telas
   Mercado de amplo alcance
   Workflow designer-desenvolvedor
   Runtime poderoso
   Liberdade do browser
   Compatibilidade com tecnologias Java
                                                   6
   Tipagem estática com inferência de tipos
   Linguagem declarativa Orientada a Objetos
   Tudo em JavaFX é uma expressão
   Binding e Triggers
   Sequências
   Mesmo código para todas as telas
                                                7
   Introdução ao JavaFX

   GUI com JavaFX

   Novidades do JavaFX 1.2
   Por onde começar?

   Conclusões

                              8
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);
  }
}
                                              9
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
        }
      }
  }
}
                                   10
11
12
13
14
15
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;
    }
}
...
                                               16
17
18
19
   Introdução ao JavaFX

   GUI com JavaFX

   Novidades do JavaFX 1.2
   Por onde começar?

   Conclusões

                              20
21
22
23
   ClipView:




                24
   Stack:




             25
   Tile:




            26
   Melhorias de performance:
     Carregamento mais rápido no Desktop e Browser
     Redução do tamanho do arquivo compilado

   Outras novidades:
     Suporte para RSS e ATOM feeds
     OpenSolaris e Linux
     Suporte a múltiplas telas
     Armazenamento local
                                                      27
   Classe Alert
     Uso:
      var result = Alert.question(“Do you want to continue?”);




                                                                 28
   Herança múltipla:
     Modificador: mixin
     Herança:
      ▪ Uma única classe normal
      ▪ Qualquer número de interfaces e mixins classes
     Colisão de nome:
      ▪ É só não utilizar os atributos e funções em conflito.




                                                                29
   Algumas palavras não são mais reservadas:
     first                 postinit
     in                    replace
     init                  step
     into                  trigger
     inverse               tween
     last                  where
     on                    with

                                                30
31
   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


                                        32
   Introdução ao JavaFX

   GUI com JavaFX

   Novidades do JavaFX 1.2
   Por onde começar?

   Conclusões

                              33
   JavaFX
     http://javafx.com/

   JavaFX Developer Home
     http://java.sun.com/javafx/

   JavaFX Programing (with Passion!)
     http://www.javapassion.com/javafx/



                                           34
   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 GraphicsViewer e SVG Converter


                                                        35
   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)

                                            36
   Introdução ao JavaFX

   GUI com JavaFX

   Novidades do JavaFX 1.2
   Por onde começar?

   Conclusões

                              37
   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
                                        38
   Vídeo




            39
José Raphael Teixeira Marques   Mestrando em Informática (UFPB)
                                raphaelmarques.wordpress.com
                                joseraphael@di.ufpb.br

JavaFX 1.2

  • 1.
    José Raphael TeixeiraMarques Mestrando em Informática (UFPB) raphaelmarques.wordpress.com joseraphael@di.ufpb.br
  • 2.
    Introdução ao JavaFX  GUI com JavaFX  Novidades do JavaFX 1.2  Por onde começar?  Conclusões 2
  • 3.
  • 4.
  • 5.
    Java “Efequis”?  JavaFX é uma linguagem?  Vou perder o que fiz em Java?  Porque não encontro material sobre JavaFX?  Por que não usar Swing?  Então JavaFX vai matar o Swing?  E a Oracle? O que pensa disso? 5
  • 6.
    Uma única plataforma RIA para todas as telas  Mercado de amplo alcance  Workflow designer-desenvolvedor  Runtime poderoso  Liberdade do browser  Compatibilidade com tecnologias Java 6
  • 7.
    Tipagem estática com inferência de tipos  Linguagem declarativa Orientada a Objetos  Tudo em JavaFX é uma expressão  Binding e Triggers  Sequências  Mesmo código para todas as telas 7
  • 8.
    Introdução ao JavaFX  GUI com JavaFX  Novidades do JavaFX 1.2  Por onde começar?  Conclusões 8
  • 9.
    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); } } 9
  • 10.
    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 } } } } 10
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
    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; } } ... 16
  • 17.
  • 18.
  • 19.
  • 20.
    Introdução ao JavaFX  GUI com JavaFX  Novidades do JavaFX 1.2  Por onde começar?  Conclusões 20
  • 21.
  • 22.
  • 23.
  • 24.
    ClipView: 24
  • 25.
    Stack: 25
  • 26.
    Tile: 26
  • 27.
    Melhorias de performance:  Carregamento mais rápido no Desktop e Browser  Redução do tamanho do arquivo compilado  Outras novidades:  Suporte para RSS e ATOM feeds  OpenSolaris e Linux  Suporte a múltiplas telas  Armazenamento local 27
  • 28.
    Classe Alert  Uso: var result = Alert.question(“Do you want to continue?”); 28
  • 29.
    Herança múltipla:  Modificador: mixin  Herança: ▪ Uma única classe normal ▪ Qualquer número de interfaces e mixins classes  Colisão de nome: ▪ É só não utilizar os atributos e funções em conflito. 29
  • 30.
    Algumas palavras não são mais reservadas:  first  postinit  in  replace  init  step  into  trigger  inverse  tween  last  where  on  with 30
  • 31.
  • 32.
    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 32
  • 33.
    Introdução ao JavaFX  GUI com JavaFX  Novidades do JavaFX 1.2  Por onde começar?  Conclusões 33
  • 34.
    JavaFX  http://javafx.com/  JavaFX Developer Home  http://java.sun.com/javafx/  JavaFX Programing (with Passion!)  http://www.javapassion.com/javafx/ 34
  • 35.
    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 GraphicsViewer e SVG Converter 35
  • 36.
    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) 36
  • 37.
    Introdução ao JavaFX  GUI com JavaFX  Novidades do JavaFX 1.2  Por onde começar?  Conclusões 37
  • 38.
    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 38
  • 39.
    Vídeo 39
  • 40.
    José Raphael TeixeiraMarques Mestrando em Informática (UFPB) raphaelmarques.wordpress.com joseraphael@di.ufpb.br