SlideShare uma empresa Scribd logo
1 de 68
Baixar para ler offline
José Raphael Teixeira Marques   Mestrando em Informática (UFPB)
                                raphaelmarques.wordpress.com
                                joseraphael@di.ufpb.br
   O que é JavaFX?
   Exemplos com JavaFX
   Por que JavaFX?
   JavaFX Script
   GUI com JavaFX Script
   Informações adicionais
   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
5
6
7
9
10
11
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
   Tipos de dados básicos (não podem ser null)
       Integer
       Number
       Boolean
       Duration

   String
   Sequence
   Function
                                                  19
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
println("raphael marques");
//raphael marques

println('raphael marques');
//raphael marques

println("raphael 'marques'");
//raphael 'marques'

println('raphael "marques"');
//raphael "marques"
                                21
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
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
def PI = 3.1416;
function calcArea(raio: Number): Number{
  return PI * raio * raio;
}
var raio = 5;
var area = calcArea(raio);




                                           24
def PI = 3.1416;
function calcArea(raio: Number) {
  return PI * raio * raio;
}
var raio = 5;
var area = calcArea(raio);




                                    25
def PI = 3.1416;
function calcArea(raio: Number) {
  PI * raio * raio;
}
var raio = 5;
var area = calcArea(raio);




                                    26
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
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
var x = 10;
var y = 20;
var rect1 = Rectangle{
   x: bind x;
   y: bind y;
};
var rect2 = bind Rectangle{
   x: x;
   y: y;
};
                              29
var a = 1 on replace old{
 println("changing a");
 println("old value: {old}");
 println("new value: {a}");
};




                                30
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, ==
{
    var a = 3;
    ...
    y = a;
}
if(a > 0) {x = a} else {x = a+b};
for(i in [1..5]){
  insert i*i into quadrados;
}
var y = {
  var a = 3;
  ...
  a;
}
var x = if(a > 0) {a} else {a+b};
var quadrados = for(i in [1..5]){
  i*i;
}
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
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
Stage{
  title: "Declarar eh facil!"
  width: 250
  height: 250
}




                                37
Stage{
  title: "Declarar eh facil!"
  scene: Scene{
      width: 250
      height: 250
  }
}




                                38
Stage{
  ...
  scene: Scene{
      ...
      content: [
          Rectangle{
            x: 45 y: 45
            width: 160 height: 160
            arcWidth: 15 arcHeight: 15
            fill: Color.GREEN
          }
      ]
  }
}

                                         39
...
content: [
    Rectangle{
      ...
    }
    Circle{
      centerX: 125 centerY: 125
      radius: 90
      fill: Color.WHITE
      stroke: Color.RED
    }
]
...

                                  40
...
content: [
    Circle{
      ...
    }
    Rectangle{
      ...
    }
]
...
                 41
...
content: [
    Circle{
      ...
    }
    Rectangle{
      ...
      opacity: 0.6
    }
]
...
                     42
...
Rectangle{
     ...
    rotate: 15
}
...




                 43
...
Rectangle{
    ...
    effect: Lighting{
        surfaceScale: 5
    }
}
...



                          44
ImageView{
  image: Image{
     url: "{__DIR__}imagem.png"
  }
  rotate: 15
  scaleX: 2
}


                                  45
...
Group{
    translateX: 15           Group
    translateY: 15
    content: [
       Text{
               ...
       }                    Translate
       Circle{
               ...
       }
    ]
}
...                  Text               Circle


                                                 46
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
48
49
50
Donut{
  x: 100
  y: 100
  raioExterno: 80
  raioInterno: 50
  fill: Color.RED
  stroke: Color.BLACK
}

                        51
var timeline = Timeline {
   keyFrames : [
     KeyFrame {
          time: 2s
          values : variavel => 100
               tween Interpolator.LINEAR
     }
   ]
};
timeline.play();

                                           52
53
54
55
56
57
   Stack:




             58
59
   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...
Main.fx:
 Locale.setDefault(Locale.ENGLISH);
 ...
 var button = Button{
     text: ##“enviar”
 }

Main_en.fxproperties:
 “enviar” = “send”
   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
   JavaFX
     http://javafx.com/

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

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



                                           64
   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
   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
   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
José Raphael Teixeira Marques   Mestrando em Informática (UFPB)
                                raphaelmarques.wordpress.com
                                joseraphael@di.ufpb.br

Mais conteúdo relacionado

Mais procurados

[Curso Java Basico] Aulas 75-84: Strings e StringBuilder
[Curso Java Basico] Aulas 75-84: Strings e StringBuilder[Curso Java Basico] Aulas 75-84: Strings e StringBuilder
[Curso Java Basico] Aulas 75-84: Strings e StringBuilderLoiane Groner
 
Design de código: princípios e práticas para ter um código sustentável
Design de código: princípios e práticas para ter um código sustentávelDesign de código: princípios e práticas para ter um código sustentável
Design de código: princípios e práticas para ter um código sustentávelAndrews Medina
 
Persistência com Realm.io
Persistência com Realm.ioPersistência com Realm.io
Persistência com Realm.ioOnyo
 
[Curso Java Basico - Exceptions] Aula 52: criando sua propria exception
[Curso Java Basico - Exceptions] Aula 52: criando sua propria exception[Curso Java Basico - Exceptions] Aula 52: criando sua propria exception
[Curso Java Basico - Exceptions] Aula 52: criando sua propria exceptionLoiane Groner
 
Sobrecarga e invocação de métodos - Preparatório Certificação - OCAJP7 - Aula...
Sobrecarga e invocação de métodos - Preparatório Certificação - OCAJP7 - Aula...Sobrecarga e invocação de métodos - Preparatório Certificação - OCAJP7 - Aula...
Sobrecarga e invocação de métodos - Preparatório Certificação - OCAJP7 - Aula...Paulo Henrique Lerbach Rodrigues
 
Curso de Matlab avancado 2
Curso de Matlab avancado 2Curso de Matlab avancado 2
Curso de Matlab avancado 2Gabriel Costa
 
Programação Concorrente - Aula 05
Programação Concorrente - Aula 05Programação Concorrente - Aula 05
Programação Concorrente - Aula 05thomasdacosta
 
Curso de Matlab avancado 1
Curso de Matlab avancado 1Curso de Matlab avancado 1
Curso de Matlab avancado 1Gabriel Costa
 
Conexão Java 2012 - Orientação a Objetos das Galáxias
Conexão Java 2012 - Orientação a Objetos das GaláxiasConexão Java 2012 - Orientação a Objetos das Galáxias
Conexão Java 2012 - Orientação a Objetos das GaláxiasMaurício Aniche
 
Membros da Classe - Preparatório Certificação - OCAJP7 - Aula 2 - D
Membros da Classe - Preparatório Certificação - OCAJP7 - Aula 2 - DMembros da Classe - Preparatório Certificação - OCAJP7 - Aula 2 - D
Membros da Classe - Preparatório Certificação - OCAJP7 - Aula 2 - DPaulo Henrique Lerbach Rodrigues
 
(Portuguese) Java EE Poliglota
(Portuguese) Java EE Poliglota(Portuguese) Java EE Poliglota
(Portuguese) Java EE PoliglotaPhil Calçado
 
[Curso Java Basico - Orientacao a Objetos] Aula 34: Variáveis e metodos estat...
[Curso Java Basico - Orientacao a Objetos] Aula 34: Variáveis e metodos estat...[Curso Java Basico - Orientacao a Objetos] Aula 34: Variáveis e metodos estat...
[Curso Java Basico - Orientacao a Objetos] Aula 34: Variáveis e metodos estat...Loiane Groner
 
Introdução Programação Em Maple
Introdução Programação Em MapleIntrodução Programação Em Maple
Introdução Programação Em Maplejeandson correa
 
TDC2018SP | Trilha Android - Assincronismo no Android, de RxJava a Coroutines
TDC2018SP | Trilha Android - Assincronismo no Android, de RxJava a CoroutinesTDC2018SP | Trilha Android - Assincronismo no Android, de RxJava a Coroutines
TDC2018SP | Trilha Android - Assincronismo no Android, de RxJava a Coroutinestdc-globalcode
 
Design Patterns na Programação de Jogo
Design Patterns na Programação de JogoDesign Patterns na Programação de Jogo
Design Patterns na Programação de JogoBruno Cicanci
 

Mais procurados (16)

[Curso Java Basico] Aulas 75-84: Strings e StringBuilder
[Curso Java Basico] Aulas 75-84: Strings e StringBuilder[Curso Java Basico] Aulas 75-84: Strings e StringBuilder
[Curso Java Basico] Aulas 75-84: Strings e StringBuilder
 
Java ME - Game API
Java ME - Game APIJava ME - Game API
Java ME - Game API
 
Design de código: princípios e práticas para ter um código sustentável
Design de código: princípios e práticas para ter um código sustentávelDesign de código: princípios e práticas para ter um código sustentável
Design de código: princípios e práticas para ter um código sustentável
 
Persistência com Realm.io
Persistência com Realm.ioPersistência com Realm.io
Persistência com Realm.io
 
[Curso Java Basico - Exceptions] Aula 52: criando sua propria exception
[Curso Java Basico - Exceptions] Aula 52: criando sua propria exception[Curso Java Basico - Exceptions] Aula 52: criando sua propria exception
[Curso Java Basico - Exceptions] Aula 52: criando sua propria exception
 
Sobrecarga e invocação de métodos - Preparatório Certificação - OCAJP7 - Aula...
Sobrecarga e invocação de métodos - Preparatório Certificação - OCAJP7 - Aula...Sobrecarga e invocação de métodos - Preparatório Certificação - OCAJP7 - Aula...
Sobrecarga e invocação de métodos - Preparatório Certificação - OCAJP7 - Aula...
 
Curso de Matlab avancado 2
Curso de Matlab avancado 2Curso de Matlab avancado 2
Curso de Matlab avancado 2
 
Programação Concorrente - Aula 05
Programação Concorrente - Aula 05Programação Concorrente - Aula 05
Programação Concorrente - Aula 05
 
Curso de Matlab avancado 1
Curso de Matlab avancado 1Curso de Matlab avancado 1
Curso de Matlab avancado 1
 
Conexão Java 2012 - Orientação a Objetos das Galáxias
Conexão Java 2012 - Orientação a Objetos das GaláxiasConexão Java 2012 - Orientação a Objetos das Galáxias
Conexão Java 2012 - Orientação a Objetos das Galáxias
 
Membros da Classe - Preparatório Certificação - OCAJP7 - Aula 2 - D
Membros da Classe - Preparatório Certificação - OCAJP7 - Aula 2 - DMembros da Classe - Preparatório Certificação - OCAJP7 - Aula 2 - D
Membros da Classe - Preparatório Certificação - OCAJP7 - Aula 2 - D
 
(Portuguese) Java EE Poliglota
(Portuguese) Java EE Poliglota(Portuguese) Java EE Poliglota
(Portuguese) Java EE Poliglota
 
[Curso Java Basico - Orientacao a Objetos] Aula 34: Variáveis e metodos estat...
[Curso Java Basico - Orientacao a Objetos] Aula 34: Variáveis e metodos estat...[Curso Java Basico - Orientacao a Objetos] Aula 34: Variáveis e metodos estat...
[Curso Java Basico - Orientacao a Objetos] Aula 34: Variáveis e metodos estat...
 
Introdução Programação Em Maple
Introdução Programação Em MapleIntrodução Programação Em Maple
Introdução Programação Em Maple
 
TDC2018SP | Trilha Android - Assincronismo no Android, de RxJava a Coroutines
TDC2018SP | Trilha Android - Assincronismo no Android, de RxJava a CoroutinesTDC2018SP | Trilha Android - Assincronismo no Android, de RxJava a Coroutines
TDC2018SP | Trilha Android - Assincronismo no Android, de RxJava a Coroutines
 
Design Patterns na Programação de Jogo
Design Patterns na Programação de JogoDesign Patterns na Programação de Jogo
Design Patterns na Programação de Jogo
 

Destaque

Aplicações desktop (GUI) e aplicações ricas para internet (RIA)
Aplicações desktop (GUI) e aplicações ricas para internet (RIA)Aplicações desktop (GUI) e aplicações ricas para internet (RIA)
Aplicações desktop (GUI) e aplicações ricas para internet (RIA)Raphael Marques
 
Mini-curso JavaFX Aula3 UFPB
Mini-curso JavaFX Aula3 UFPBMini-curso JavaFX Aula3 UFPB
Mini-curso JavaFX Aula3 UFPBRaphael Marques
 
Tweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFXTweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFXBruno Borges
 
JavaFX: Desktop para desenvolvedores WEB
JavaFX: Desktop para desenvolvedores WEBJavaFX: Desktop para desenvolvedores WEB
JavaFX: Desktop para desenvolvedores WEBjesuinoPower
 
Como ingressar no mercado de Machine Learning
Como ingressar no mercado de Machine LearningComo ingressar no mercado de Machine Learning
Como ingressar no mercado de Machine LearningGabriel Cypriano Saca
 
Aprendizado de Máquinas com Azure Machine Learning e R
Aprendizado de Máquinas com Azure Machine Learning e RAprendizado de Máquinas com Azure Machine Learning e R
Aprendizado de Máquinas com Azure Machine Learning e RDiego Nogare
 
Introdução ao Machine Learning para Hackers
Introdução ao Machine Learning para HackersIntrodução ao Machine Learning para Hackers
Introdução ao Machine Learning para HackersGabriel Cypriano Saca
 
Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP
Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SPBoas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP
Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SPjesuinoPower
 
Criando aplicações java fx em minutos
Criando aplicações java fx em minutosCriando aplicações java fx em minutos
Criando aplicações java fx em minutosBruno Oliveira
 
Building Java Desktop Apps with JavaFX 8 and Java EE 7
Building Java Desktop Apps with JavaFX 8 and Java EE 7Building Java Desktop Apps with JavaFX 8 and Java EE 7
Building Java Desktop Apps with JavaFX 8 and Java EE 7Bruno Borges
 
JavaFx - Guia Prático
JavaFx - Guia PráticoJavaFx - Guia Prático
JavaFx - Guia Práticodanielfc
 
Aplicações Práticas de Machine Learning
Aplicações Práticas de Machine LearningAplicações Práticas de Machine Learning
Aplicações Práticas de Machine LearningLuiz Costa
 

Destaque (20)

Aplicações desktop (GUI) e aplicações ricas para internet (RIA)
Aplicações desktop (GUI) e aplicações ricas para internet (RIA)Aplicações desktop (GUI) e aplicações ricas para internet (RIA)
Aplicações desktop (GUI) e aplicações ricas para internet (RIA)
 
Mini-curso JavaFX Aula3 UFPB
Mini-curso JavaFX Aula3 UFPBMini-curso JavaFX Aula3 UFPB
Mini-curso JavaFX Aula3 UFPB
 
Mini-curso JavaFX Aula2
Mini-curso JavaFX Aula2Mini-curso JavaFX Aula2
Mini-curso JavaFX Aula2
 
Mini-curso JavaFX Aula1
Mini-curso JavaFX Aula1Mini-curso JavaFX Aula1
Mini-curso JavaFX Aula1
 
JavaFX
JavaFXJavaFX
JavaFX
 
JavaFX
JavaFXJavaFX
JavaFX
 
Classes Internas
Classes InternasClasses Internas
Classes Internas
 
Operadores Java
Operadores JavaOperadores Java
Operadores Java
 
Tweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFXTweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFX
 
JavaFX: Desktop para desenvolvedores WEB
JavaFX: Desktop para desenvolvedores WEBJavaFX: Desktop para desenvolvedores WEB
JavaFX: Desktop para desenvolvedores WEB
 
Como ingressar no mercado de Machine Learning
Como ingressar no mercado de Machine LearningComo ingressar no mercado de Machine Learning
Como ingressar no mercado de Machine Learning
 
Aprendizado de Máquinas com Azure Machine Learning e R
Aprendizado de Máquinas com Azure Machine Learning e RAprendizado de Máquinas com Azure Machine Learning e R
Aprendizado de Máquinas com Azure Machine Learning e R
 
Introdução ao Machine Learning para Hackers
Introdução ao Machine Learning para HackersIntrodução ao Machine Learning para Hackers
Introdução ao Machine Learning para Hackers
 
Machine Learning - Introdução e Aplicações
Machine Learning - Introdução e AplicaçõesMachine Learning - Introdução e Aplicações
Machine Learning - Introdução e Aplicações
 
Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP
Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SPBoas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP
Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP
 
Criando aplicações java fx em minutos
Criando aplicações java fx em minutosCriando aplicações java fx em minutos
Criando aplicações java fx em minutos
 
Building Java Desktop Apps with JavaFX 8 and Java EE 7
Building Java Desktop Apps with JavaFX 8 and Java EE 7Building Java Desktop Apps with JavaFX 8 and Java EE 7
Building Java Desktop Apps with JavaFX 8 and Java EE 7
 
JavaFx - Guia Prático
JavaFx - Guia PráticoJavaFx - Guia Prático
JavaFx - Guia Prático
 
JavaFX Presentation
JavaFX PresentationJavaFX Presentation
JavaFX Presentation
 
Aplicações Práticas de Machine Learning
Aplicações Práticas de Machine LearningAplicações Práticas de Machine Learning
Aplicações Práticas de Machine Learning
 

Semelhante a JavaFX Introdução

JavaFX and Scala - Like Milk and Cookies - Brazil
JavaFX and Scala - Like Milk and Cookies - BrazilJavaFX and Scala - Like Milk and Cookies - Brazil
JavaFX and Scala - Like Milk and Cookies - BrazilStephen Chin
 
JavaFX e Scala - Como Leite com Bolacha
JavaFX e Scala - Como Leite com BolachaJavaFX e Scala - Como Leite com Bolacha
JavaFX e Scala - Como Leite com BolachaRafael Afonso
 
O que é que o Java não tem?
O que é que o Java não tem?O que é que o Java não tem?
O que é que o Java não tem?Denis Costa
 
Webinar: Uma introdução a ISA RISC-V e seu ecossistema
Webinar: Uma introdução a ISA RISC-V e seu ecossistemaWebinar: Uma introdução a ISA RISC-V e seu ecossistema
Webinar: Uma introdução a ISA RISC-V e seu ecossistemaEmbarcados
 
Lidando com o Caos: Testando Código PLSQL em um Projeto Critico
Lidando com o Caos: Testando Código PLSQL em um Projeto CriticoLidando com o Caos: Testando Código PLSQL em um Projeto Critico
Lidando com o Caos: Testando Código PLSQL em um Projeto CriticoRafael Ponte
 
Java aprendendo linguagem.ppt
Java aprendendo linguagem.pptJava aprendendo linguagem.ppt
Java aprendendo linguagem.pptEmerson Cardoso
 
Desenho de formas utizando netbeans
Desenho de formas utizando netbeansDesenho de formas utizando netbeans
Desenho de formas utizando netbeansokashi24
 
Capítulo 14 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 14 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 14 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 14 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Os Fantasmas !
 
Técnicas de Refactorización (EN ESPANOL)
Técnicas de Refactorización (EN ESPANOL)Técnicas de Refactorización (EN ESPANOL)
Técnicas de Refactorización (EN ESPANOL)Rodrigo Branas
 

Semelhante a JavaFX Introdução (20)

JavaFX 1.2
JavaFX 1.2JavaFX 1.2
JavaFX 1.2
 
JavaFX and Scala - Like Milk and Cookies - Brazil
JavaFX and Scala - Like Milk and Cookies - BrazilJavaFX and Scala - Like Milk and Cookies - Brazil
JavaFX and Scala - Like Milk and Cookies - Brazil
 
JavaFX e Scala - Como Leite com Bolacha
JavaFX e Scala - Como Leite com BolachaJavaFX e Scala - Como Leite com Bolacha
JavaFX e Scala - Como Leite com Bolacha
 
JavaFX SestInfo 2010
JavaFX SestInfo 2010JavaFX SestInfo 2010
JavaFX SestInfo 2010
 
Javafx Introdução
Javafx IntroduçãoJavafx Introdução
Javafx Introdução
 
O que é que o Java não tem?
O que é que o Java não tem?O que é que o Java não tem?
O que é que o Java não tem?
 
Bubble Sort Classe Java
Bubble Sort Classe JavaBubble Sort Classe Java
Bubble Sort Classe Java
 
iOS 8 com swift
iOS 8 com swiftiOS 8 com swift
iOS 8 com swift
 
Minicurso groovy grails
Minicurso groovy grailsMinicurso groovy grails
Minicurso groovy grails
 
Webinar: Uma introdução a ISA RISC-V e seu ecossistema
Webinar: Uma introdução a ISA RISC-V e seu ecossistemaWebinar: Uma introdução a ISA RISC-V e seu ecossistema
Webinar: Uma introdução a ISA RISC-V e seu ecossistema
 
Design OO
Design OODesign OO
Design OO
 
Lidando com o Caos: Testando Código PLSQL em um Projeto Critico
Lidando com o Caos: Testando Código PLSQL em um Projeto CriticoLidando com o Caos: Testando Código PLSQL em um Projeto Critico
Lidando com o Caos: Testando Código PLSQL em um Projeto Critico
 
Javafx Gui
Javafx GuiJavafx Gui
Javafx Gui
 
Java aprendendo linguagem.ppt
Java aprendendo linguagem.pptJava aprendendo linguagem.ppt
Java aprendendo linguagem.ppt
 
Java script aula 02 - operadores
Java script   aula 02 - operadoresJava script   aula 02 - operadores
Java script aula 02 - operadores
 
Scala no Android
Scala no AndroidScala no Android
Scala no Android
 
Desenho de formas utizando netbeans
Desenho de formas utizando netbeansDesenho de formas utizando netbeans
Desenho de formas utizando netbeans
 
Capítulo 14 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 14 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 14 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 14 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
 
Javascript
JavascriptJavascript
Javascript
 
Técnicas de Refactorización (EN ESPANOL)
Técnicas de Refactorización (EN ESPANOL)Técnicas de Refactorización (EN ESPANOL)
Técnicas de Refactorización (EN ESPANOL)
 

Mais de Raphael Marques

Introdução a Informática - Arquitetura
Introdução a Informática - ArquiteturaIntrodução a Informática - Arquitetura
Introdução a Informática - ArquiteturaRaphael Marques
 
O que você produz além de código?
O que você produz além de código?O que você produz além de código?
O que você produz além de código?Raphael Marques
 
Aplicações desktop (GUI) e aplicações ricas para internet (RIA)
Aplicações desktop (GUI) e aplicações ricas para internet (RIA)Aplicações desktop (GUI) e aplicações ricas para internet (RIA)
Aplicações desktop (GUI) e aplicações ricas para internet (RIA)Raphael Marques
 
Slides de PDI 2009 - Raphael Update 5
Slides de PDI 2009 - Raphael Update 5Slides de PDI 2009 - Raphael Update 5
Slides de PDI 2009 - Raphael Update 5Raphael Marques
 
slides PDI 2007 leonardo
slides PDI 2007 leonardoslides PDI 2007 leonardo
slides PDI 2007 leonardoRaphael Marques
 
Slides PDI 2009 Raphael versao4
Slides PDI 2009 Raphael versao4Slides PDI 2009 Raphael versao4
Slides PDI 2009 Raphael versao4Raphael Marques
 

Mais de Raphael Marques (11)

Sistemas numéricos
Sistemas numéricosSistemas numéricos
Sistemas numéricos
 
Windows explorer
Windows explorerWindows explorer
Windows explorer
 
Interface do windows
Interface do windowsInterface do windows
Interface do windows
 
Internet
InternetInternet
Internet
 
Introdução a Informática - Arquitetura
Introdução a Informática - ArquiteturaIntrodução a Informática - Arquitetura
Introdução a Informática - Arquitetura
 
O que você produz além de código?
O que você produz além de código?O que você produz além de código?
O que você produz além de código?
 
Aplicações desktop (GUI) e aplicações ricas para internet (RIA)
Aplicações desktop (GUI) e aplicações ricas para internet (RIA)Aplicações desktop (GUI) e aplicações ricas para internet (RIA)
Aplicações desktop (GUI) e aplicações ricas para internet (RIA)
 
Slides de PDI 2009 - Raphael Update 5
Slides de PDI 2009 - Raphael Update 5Slides de PDI 2009 - Raphael Update 5
Slides de PDI 2009 - Raphael Update 5
 
slides PDI 2007 leonardo
slides PDI 2007 leonardoslides PDI 2007 leonardo
slides PDI 2007 leonardo
 
Slides PDI 2009 Raphael versao4
Slides PDI 2009 Raphael versao4Slides PDI 2009 Raphael versao4
Slides PDI 2009 Raphael versao4
 
Minicurso Java && Cl
Minicurso Java && ClMinicurso Java && Cl
Minicurso Java && Cl
 

JavaFX Introdução

  • 1. José Raphael Teixeira Marques Mestrando em Informática (UFPB) raphaelmarques.wordpress.com joseraphael@di.ufpb.br
  • 2. O que é JavaFX?  Exemplos com JavaFX  Por que JavaFX?  JavaFX Script  GUI com JavaFX Script  Informações adicionais
  • 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
  • 5. 5
  • 6. 6
  • 7. 7
  • 8.
  • 9. 9
  • 10. 10
  • 11. 11
  • 12. 12
  • 13.
  • 14.
  • 15.
  • 16.
  • 17. 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
  • 18.
  • 19. Tipos de dados básicos (não podem ser null)  Integer  Number  Boolean  Duration  String  Sequence  Function 19
  • 20. 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
  • 21. println("raphael marques"); //raphael marques println('raphael marques'); //raphael marques println("raphael 'marques'"); //raphael 'marques' println('raphael "marques"'); //raphael "marques" 21
  • 22. 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
  • 23. 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
  • 24. def PI = 3.1416; function calcArea(raio: Number): Number{ return PI * raio * raio; } var raio = 5; var area = calcArea(raio); 24
  • 25. def PI = 3.1416; function calcArea(raio: Number) { return PI * raio * raio; } var raio = 5; var area = calcArea(raio); 25
  • 26. def PI = 3.1416; function calcArea(raio: Number) { PI * raio * raio; } var raio = 5; var area = calcArea(raio); 26
  • 27. 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
  • 28. 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
  • 29. var x = 10; var y = 20; var rect1 = Rectangle{ x: bind x; y: bind y; }; var rect2 = bind Rectangle{ x: x; y: y; }; 29
  • 30. var a = 1 on replace old{ println("changing a"); println("old value: {old}"); println("new value: {a}"); }; 30
  • 31. 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, ==
  • 32. { var a = 3; ... y = a; } if(a > 0) {x = a} else {x = a+b}; for(i in [1..5]){ insert i*i into quadrados; }
  • 33. var y = { var a = 3; ... a; } var x = if(a > 0) {a} else {a+b}; var quadrados = for(i in [1..5]){ i*i; }
  • 34.
  • 35. 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
  • 36. 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
  • 37. Stage{ title: "Declarar eh facil!" width: 250 height: 250 } 37
  • 38. Stage{ title: "Declarar eh facil!" scene: Scene{ width: 250 height: 250 } } 38
  • 39. Stage{ ... scene: Scene{ ... content: [ Rectangle{ x: 45 y: 45 width: 160 height: 160 arcWidth: 15 arcHeight: 15 fill: Color.GREEN } ] } } 39
  • 40. ... content: [ Rectangle{ ... } Circle{ centerX: 125 centerY: 125 radius: 90 fill: Color.WHITE stroke: Color.RED } ] ... 40
  • 41. ... content: [ Circle{ ... } Rectangle{ ... } ] ... 41
  • 42. ... content: [ Circle{ ... } Rectangle{ ... opacity: 0.6 } ] ... 42
  • 43. ... Rectangle{ ... rotate: 15 } ... 43
  • 44. ... Rectangle{ ... effect: Lighting{ surfaceScale: 5 } } ... 44
  • 45. ImageView{ image: Image{ url: "{__DIR__}imagem.png" } rotate: 15 scaleX: 2 } 45
  • 46. ... Group{ translateX: 15 Group translateY: 15 content: [ Text{ ... } Translate Circle{ ... } ] } ... Text Circle 46
  • 47. 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
  • 48. 48
  • 49. 49
  • 50. 50
  • 51. Donut{ x: 100 y: 100 raioExterno: 80 raioInterno: 50 fill: Color.RED stroke: Color.BLACK } 51
  • 52. var timeline = Timeline { keyFrames : [ KeyFrame { time: 2s values : variavel => 100 tween Interpolator.LINEAR } ] }; timeline.play(); 52
  • 53. 53
  • 54. 54
  • 55. 55
  • 56. 56
  • 57. 57
  • 58. Stack: 58
  • 59. 59
  • 60. 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...
  • 61. Main.fx: Locale.setDefault(Locale.ENGLISH); ... var button = Button{ text: ##“enviar” } Main_en.fxproperties: “enviar” = “send”
  • 62.
  • 63. 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
  • 64. JavaFX  http://javafx.com/  JavaFX Developer Home  http://java.sun.com/javafx/  JavaFX Programing (with Passion!)  http://www.javapassion.com/javafx/ 64
  • 65. 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
  • 66. 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
  • 67. 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
  • 68. José Raphael Teixeira Marques Mestrando em Informática (UFPB) raphaelmarques.wordpress.com joseraphael@di.ufpb.br