SlideShare uma empresa Scribd logo
1 de 40
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Apostila Java Web (Servlets e JSPs)
Apostila Java Web (Servlets e JSPs)Apostila Java Web (Servlets e JSPs)
Apostila Java Web (Servlets e JSPs)Ricardo Terra
 
A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...
A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...
A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...Rogério Moraes de Carvalho
 
Java 8 - A Evolução da Linguagem
Java 8 - A Evolução da LinguagemJava 8 - A Evolução da Linguagem
Java 8 - A Evolução da LinguagemPetronio Candido
 
Treinamento Básico de Django
Treinamento Básico de DjangoTreinamento Básico de Django
Treinamento Básico de DjangoLeandro Zanuz
 
Java JDBC: Aplicação Java que acessa um SGDB
Java JDBC: Aplicação Java que acessa um SGDBJava JDBC: Aplicação Java que acessa um SGDB
Java JDBC: Aplicação Java que acessa um SGDBRicardo Terra
 
Django: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutosDjango: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutosRodrigo Nossal
 
De Zero à Web com Python e Django
De Zero à Web com Python e DjangoDe Zero à Web com Python e Django
De Zero à Web com Python e DjangoOsvaldo Santana Neto
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e djangoIgor Sobreira
 
Introdução a Grails: Um framework veloz e poderoso
Introdução a Grails: Um framework veloz e poderosoIntrodução a Grails: Um framework veloz e poderoso
Introdução a Grails: Um framework veloz e poderosoBruno Lopes
 
Oficina groovy grails - infoway
Oficina  groovy grails - infowayOficina  groovy grails - infoway
Oficina groovy grails - infowayLucas Aquiles
 
Plataforma de compiladores .NET, Visual Studio 2015, C# 6 e futuro C# 7
Plataforma de compiladores .NET,Visual Studio 2015, C# 6 e futuro C# 7Plataforma de compiladores .NET,Visual Studio 2015, C# 6 e futuro C# 7
Plataforma de compiladores .NET, Visual Studio 2015, C# 6 e futuro C# 7Rogério Moraes de Carvalho
 
Poo1 aula 1 - java - história e introdução
Poo1   aula 1 - java -  história e introduçãoPoo1   aula 1 - java -  história e introdução
Poo1 aula 1 - java - história e introduçãoDenis Sobrenome
 

Mais procurados (20)

Apostila Java Web (Servlets e JSPs)
Apostila Java Web (Servlets e JSPs)Apostila Java Web (Servlets e JSPs)
Apostila Java Web (Servlets e JSPs)
 
A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...
A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...
A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...
 
Java 8 - A Evolução da Linguagem
Java 8 - A Evolução da LinguagemJava 8 - A Evolução da Linguagem
Java 8 - A Evolução da Linguagem
 
Csharp
CsharpCsharp
Csharp
 
Treinamento Básico de Django
Treinamento Básico de DjangoTreinamento Básico de Django
Treinamento Básico de Django
 
Java JDBC: Aplicação Java que acessa um SGDB
Java JDBC: Aplicação Java que acessa um SGDBJava JDBC: Aplicação Java que acessa um SGDB
Java JDBC: Aplicação Java que acessa um SGDB
 
Django: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutosDjango: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutos
 
Code Smells
Code SmellsCode Smells
Code Smells
 
De Zero à Web com Python e Django
De Zero à Web com Python e DjangoDe Zero à Web com Python e Django
De Zero à Web com Python e Django
 
Minicurso groovy grails
Minicurso groovy grailsMinicurso groovy grails
Minicurso groovy grails
 
Curso de java 02
Curso de java 02Curso de java 02
Curso de java 02
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e django
 
Introdução ao C#
Introdução ao C#Introdução ao C#
Introdução ao C#
 
Clean Code
Clean CodeClean Code
Clean Code
 
Introdução a Grails: Um framework veloz e poderoso
Introdução a Grails: Um framework veloz e poderosoIntrodução a Grails: Um framework veloz e poderoso
Introdução a Grails: Um framework veloz e poderoso
 
Oficina groovy grails - infoway
Oficina  groovy grails - infowayOficina  groovy grails - infoway
Oficina groovy grails - infoway
 
Plataforma de compiladores .NET, Visual Studio 2015, C# 6 e futuro C# 7
Plataforma de compiladores .NET,Visual Studio 2015, C# 6 e futuro C# 7Plataforma de compiladores .NET,Visual Studio 2015, C# 6 e futuro C# 7
Plataforma de compiladores .NET, Visual Studio 2015, C# 6 e futuro C# 7
 
Poo1 aula 1 - java - história e introdução
Poo1   aula 1 - java -  história e introduçãoPoo1   aula 1 - java -  história e introdução
Poo1 aula 1 - java - história e introdução
 
Introdução C#
Introdução C#Introdução C#
Introdução C#
 
Apostila de C# & Asp.Net
Apostila de C# & Asp.NetApostila de C# & Asp.Net
Apostila de C# & Asp.Net
 

Destaque

Destaque (8)

JavaFX
JavaFXJavaFX
JavaFX
 
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
 
Classes Internas
Classes InternasClasses Internas
Classes Internas
 
Operadores Java
Operadores JavaOperadores Java
Operadores Java
 
JavaFX: A nova biblioteca gráfica da plataforma Java
JavaFX: A nova biblioteca gráfica da plataforma JavaJavaFX: A nova biblioteca gráfica da plataforma Java
JavaFX: A nova biblioteca gráfica da plataforma Java
 

Semelhante a JavaFX 1.2

Introdução ao java fx e visage
Introdução ao java fx e visageIntrodução ao java fx e visage
Introdução ao java fx e visagejesuinoPower
 
JavaFX 2 - TDC 2012
JavaFX 2 - TDC 2012JavaFX 2 - TDC 2012
JavaFX 2 - TDC 2012jesuinoPower
 
Palestra Sepai Alfredofurtado Introducao Ao Javafx
Palestra Sepai Alfredofurtado Introducao Ao JavafxPalestra Sepai Alfredofurtado Introducao Ao Javafx
Palestra Sepai Alfredofurtado Introducao Ao Javafxalfredofurtado
 
Introdução ao JavaFX
Introdução ao JavaFXIntrodução ao JavaFX
Introdução ao JavaFXjesuinoPower
 
Java fx para o mercado embedded com raspberry pi
Java fx para o mercado embedded com raspberry piJava fx para o mercado embedded com raspberry pi
Java fx para o mercado embedded com raspberry piClaudiney 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
 
Desenho de formas utizando netbeans
Desenho de formas utizando netbeansDesenho de formas utizando netbeans
Desenho de formas utizando netbeansokashi24
 
Produtividade em Java com Grails
Produtividade em Java com GrailsProdutividade em Java com Grails
Produtividade em Java com GrailsWanderson Oliveira
 
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
 
Jugday - Java Básico
Jugday - Java BásicoJugday - Java Básico
Jugday - Java BásicoPaloma Costa
 
Inovando na plataforma Java
Inovando na plataforma JavaInovando na plataforma Java
Inovando na plataforma JavaEteg
 
JavaFX: Abordagem Prática
JavaFX: Abordagem PráticaJavaFX: Abordagem Prática
JavaFX: Abordagem PráticaEder Magalhães
 

Semelhante a JavaFX 1.2 (20)

Introdução ao java fx e visage
Introdução ao java fx e visageIntrodução ao java fx e visage
Introdução ao java fx e visage
 
JavaFX 2
JavaFX 2JavaFX 2
JavaFX 2
 
JavaFX 2 - TDC 2012
JavaFX 2 - TDC 2012JavaFX 2 - TDC 2012
JavaFX 2 - TDC 2012
 
Palestra Sepai Alfredofurtado Introducao Ao Javafx
Palestra Sepai Alfredofurtado Introducao Ao JavafxPalestra Sepai Alfredofurtado Introducao Ao Javafx
Palestra Sepai Alfredofurtado Introducao Ao Javafx
 
Introdução ao JavaFX
Introdução ao JavaFXIntrodução ao JavaFX
Introdução ao JavaFX
 
Java fx para o mercado embedded com raspberry pi
Java fx para o mercado embedded com raspberry piJava fx para o mercado embedded com raspberry pi
Java fx para o mercado embedded com raspberry pi
 
Java Seminar
Java SeminarJava Seminar
Java Seminar
 
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)
 
Desenho de formas utizando netbeans
Desenho de formas utizando netbeansDesenho de formas utizando netbeans
Desenho de formas utizando netbeans
 
Tutorial Java EE
Tutorial Java EETutorial Java EE
Tutorial Java EE
 
JavaFx - Introdução
JavaFx - IntroduçãoJavaFx - Introdução
JavaFx - Introdução
 
Produtividade em Java com Grails
Produtividade em Java com GrailsProdutividade em Java com Grails
Produtividade em Java com Grails
 
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
 
Jugday - Java Básico
Jugday - Java BásicoJugday - Java Básico
Jugday - Java Básico
 
Introdução ao JavaFX
Introdução ao JavaFXIntrodução ao JavaFX
Introdução ao JavaFX
 
Inovando na plataforma Java
Inovando na plataforma JavaInovando na plataforma Java
Inovando na plataforma Java
 
Inovando na Plataforma Java
Inovando na Plataforma JavaInovando na Plataforma Java
Inovando na Plataforma Java
 
Javafx
JavafxJavafx
Javafx
 
JavaFX: Abordagem Prática
JavaFX: Abordagem PráticaJavaFX: Abordagem Prática
JavaFX: Abordagem Prática
 
Hello World JavaFX
Hello World JavaFXHello World JavaFX
Hello World JavaFX
 

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
 
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 (10)

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?
 
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 1.2

  • 1. José Raphael Teixeira Marques 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. 3
  • 4. 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. 11
  • 12. 12
  • 13. 13
  • 14. 14
  • 15. 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. 17
  • 18. 18
  • 19. 19
  • 20. Introdução ao JavaFX  GUI com JavaFX  Novidades do JavaFX 1.2  Por onde começar?  Conclusões 20
  • 21. 21
  • 22. 22
  • 23. 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. 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 Teixeira Marques Mestrando em Informática (UFPB) raphaelmarques.wordpress.com joseraphael@di.ufpb.br