SlideShare une entreprise Scribd logo
1  sur  54
JavaFX Clodoaldo Brasilino Leite Neto clodbrasilino@gmail.com
O que é JavaFX?
O que é JavaFX?
A Plataforma JavaFX
A Plataforma JavaFX Uma família de tecnologias JavaFXRuntime JavaFX Script JavaFXTools Para quem? Designers Desenvolvedores
JavaFX,Flex ou Silverlight?
Java, Flash ou .Net?
Sun, Adobe ou Microsoft?
Temos Flex e Silverlight... Por que JavaFX?
Por que JavaFX? Uma única plataforma RIA para todas as telas Mercado de amplo alcance Fluxo de trabalho designer-desenvolvedor Runtime poderoso Liberdade do browser Compatibilidade com tecnologias Java
Exemplos de Aplicação JavaFX
Exemplos de Aplicação JavaFX
Por onde começar?
Sites básicos JavaFX http://javafx.com/ JavaFXDeveloperHome http://java.sun.com/javafx/ JavaFXPrograming(withPassion!) http://www.javapassion.com/javafx/ Raphael Marques – Meu tutor!  http://raphaelmarques.wordpress.com/
Ferramentas Atuais Windows, Linux, Mac OS X e Solarisx86 JavaFX 1.2 SDK NetbeansIDE 6.5.1 para JavaFX 1.2 JavaFX 1.2 ProductionSuite Plugin para Adobe Illustrator e Adobe Photoshop Media Factory JavaFXGraphicsViewer e SVG Converter
JavaFX Script
Tipos “Primitivos” Tipos de dados básicos (não nulos) Integer Number Boolean Duration String Sequence Function
varstring1= “JavaFX";  varstring2: String = “JavaFX"; varinteger1= 3; varinteger2: Integer= 3; varnumber1= 3.0; varnumber2: Number= 3; varnumber3= 3 asNumber; varnumber4= integer1+ number1; Declaração de Variáveis
Tolo! Você não declarou o tipo de suas variáveis! Irá arder no fogo do inferno e seu código não compilará!
Não precisa, rapaz! JavaFX possui INFERÊNCIA DE TIPOS!
println(“JavaFXrules”); //JavaFXrules println(‘JavaFXrules’); //JavaFXrules println(“JavaFX ‘rules’ ”); //JavaFX ‘rules’ println(‘JavaFX “rules” ’); //JavaFX “rules” Strings
varstring1= “JavaFX"; varstring2: String = “rules"; println(“{string1} {string2}”); //JavaFXrules “Valor de x: {x}” “Valor de x: {objeto.getX()}” Strings
Operadores Integer e Number: + - * / mod Boolean and or not
vart1: Duration= 1ms; vart2= 1s; vart3= 1m; vart4= 1h; println("{t1} {t2} {t3} {t4}"); //1ms 500ms 60000ms 3600000ms println(1s+ 500ms);//1500.0ms println(1s/ 500ms);//2.0 println(1s*2);//2000.0ms println(1s/2);//500.0ms
Functions
defPI= 3.1416; functioncalcArea(raio: Number): Number{ returnPI* raio * raio; } varraio= 5; vararea= calcArea(raio);
defPI= 3.1416; functioncalcArea(raio: Number) { returnPI* raio * raio; } varraio= 5; vararea= calcArea(raio);
defPI= 3.1416; functioncalcArea(raio: Number) { PI* raio * raio; } varraio= 5; vararea= calcArea(raio);
defPI= 3.1416; var calcArea=function(raio: Number) { PI* raio * raio; } varcalcPerimetro=function(raio: Number) { PI* raio * 2; } varcalc= calcArea; println(calc(5)); calc= calcPerimetro; println(calc(5));
defPI= 3.1416; var calcArea=function(raio: Number) { PI* raio * raio; } varcalcPerimetro=function(raio: Number) { PI* raio * 2; } varcalc: function(Number):Number= calcArea; println(calc(5)); calc= calcPerimetro; println(calc(5));
class A{ varx= 0; functiongetx(){ x; 	} } vara= A{x:1}; varb= A{x:2}; varf= a.getx; varg= b.getx; println(f());//1 println(g());//2
Binding
varx = 1; vary = bindx; varz = bindy * 2; println("{x} {y} {z}");//1 1 2 x = 2; println("{x} {y} {z}");//2 2 4 Binding
vara = 1; varb = bindawithinverse; println("{a} {b}");//1 1 a = 2; println("{a} {b}");//2 2 b = 3; println("{a} {b}");//3 3 Binding
varx = 10; vary = 20; varrect1 = Rectangle{ 	x: bindx; 	y: bindy; };  varrect2 = bindRectangle{ 	x: x; 	y: y; };  Binding
defPI = 3.1416; varraio = 5; boundfunctioncalcArea(){ PI * raio * raio; } vararea = bindcalcArea(); println(area);// 78.53999 raio = 10; println(area);// 314.15997 Binding
vara = 1 on replace old{ println("changing"); println("old: {old}"); println("new: {a}"); }; a = 3; Trigger
vara = 1 on replace old{ println("changing"); println("old: {old}"); println("new: {a}"); }; a = 3; //changing //old: 0 //new: 1 //changing //old: 1 //new: 3 Trigger
GUI com JavaFX
publicclassHelloWorldSwing{ publicstaticvoidmain(String[] args){ JFrameframe = newJFrame("HelloWorldSwing"); Jlabellabel= newJLabel("HelloWorld"); 	   frame.getContentPane().add(label); 	   frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE); 	   frame.pack(); 	   frame.setVisible(true); 	} } Hello World com Swing
Stage{ title: "HelloWorld em JavaFX" width: 250 height: 80 scene: Scene{ content: Text{ content: "HelloWorld!"                x: 10 y: 30 font: Font{ size: 24               }           }      } } Hello World com JavaFX
Stage{ title: "Declarar ehfacil!" width: 250 height: 250 } Hello World com JavaFX
Stage{ title: "Declarar ehfacil!" scene: Scene{ width: 250 height: 250 } } Hello World com JavaFX
Objetos em Content
Posição dos Objetos na cena
Posição dos Objetos em cena
Posição dos Objetos em cena
Transformações
Efeitos
Efeitos e Transformações
Eventos
Agrupamentos
ImageView{ image: Image{ 		url: "{__DIR__}imagem.png" 	} rotate: 15 scaleX: 2 } Imagens
Vídeo

Contenu connexe

Tendances

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
 
XML Free Programming - Brazil
XML Free Programming - BrazilXML Free Programming - Brazil
XML Free Programming - Brazil
Stephen Chin
 

Tendances (20)

Portando app JavaME S40 para C# WP7: Um estudo de caso real da app CalcSphere
Portando app JavaME S40 para C# WP7:  Um estudo de caso real da app CalcSpherePortando app JavaME S40 para C# WP7:  Um estudo de caso real da app CalcSphere
Portando app JavaME S40 para C# WP7: Um estudo de caso real da app CalcSphere
 
Oficina groovy grails - infoway
Oficina  groovy grails - infowayOficina  groovy grails - infoway
Oficina groovy grails - infoway
 
Groovy grails
Groovy grailsGroovy grails
Groovy grails
 
Curso de Grails
Curso de GrailsCurso de Grails
Curso de Grails
 
Grails, o que isso quer dizer?
Grails, o que isso quer dizer?Grails, o que isso quer dizer?
Grails, o que isso quer dizer?
 
Vim - Um editor onipresente e flexível
Vim - Um editor onipresente e flexívelVim - Um editor onipresente e flexível
Vim - Um editor onipresente e flexível
 
Curso de Node JS Básico
Curso de Node JS BásicoCurso de Node JS Básico
Curso de Node JS Básico
 
(Portuguese) Java EE Poliglota
(Portuguese) Java EE Poliglota(Portuguese) Java EE Poliglota
(Portuguese) Java EE Poliglota
 
Java hidden features
Java hidden featuresJava hidden features
Java hidden features
 
Depuração de software
Depuração de softwareDepuração de software
Depuração de software
 
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)
 
Desenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on RailsDesenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on Rails
 
Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)
 
[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
 
Code Smells
Code SmellsCode Smells
Code Smells
 
Aprendendo objective c - parte 1
Aprendendo objective c - parte 1Aprendendo objective c - parte 1
Aprendendo objective c - parte 1
 
XML Free Programming - Brazil
XML Free Programming - BrazilXML Free Programming - Brazil
XML Free Programming - Brazil
 
Java hidden features
Java hidden featuresJava hidden features
Java hidden features
 
Maratona de Programação com STL
Maratona de Programação com STLMaratona de Programação com STL
Maratona de Programação com STL
 
Java ME - Game API
Java ME - Game APIJava ME - Game API
Java ME - Game API
 

Similaire à Tutorial JavaFX simples

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
jesuinoPower
 
Apresentando o EcmaScript 6
Apresentando o EcmaScript 6Apresentando o EcmaScript 6
Apresentando o EcmaScript 6
Giovanni Bassi
 
Compus Party - processing e arduino
Compus Party - processing e arduinoCompus Party - processing e arduino
Compus Party - processing e arduino
Campus Party Brasil
 
Introdução ao OpenLayers
Introdução ao OpenLayersIntrodução ao OpenLayers
Introdução ao OpenLayers
Fernando Quadro
 
LabMM3 - Aula teórica 09
LabMM3 - Aula teórica 09LabMM3 - Aula teórica 09
LabMM3 - Aula teórica 09
Carlos Santos
 

Similaire à Tutorial JavaFX simples (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
 
Introdução ao JavaFX
Introdução ao JavaFXIntrodução ao JavaFX
Introdução ao JavaFX
 
Apresentando o EcmaScript 6
Apresentando o EcmaScript 6Apresentando o EcmaScript 6
Apresentando o EcmaScript 6
 
Javascript Avançado
Javascript AvançadoJavascript Avançado
Javascript Avançado
 
JavaFX 2 - TDC 2012
JavaFX 2 - TDC 2012JavaFX 2 - TDC 2012
JavaFX 2 - TDC 2012
 
JavaFX SestInfo 2010
JavaFX SestInfo 2010JavaFX SestInfo 2010
JavaFX SestInfo 2010
 
Principais novidades do PHP7
Principais novidades do PHP7Principais novidades do PHP7
Principais novidades do PHP7
 
Java7 tdc2011
Java7 tdc2011Java7 tdc2011
Java7 tdc2011
 
Compus Party - processing e arduino
Compus Party - processing e arduinoCompus Party - processing e arduino
Compus Party - processing e arduino
 
Groovy para javeiros - Migração Painless
Groovy para javeiros - Migração PainlessGroovy para javeiros - Migração Painless
Groovy para javeiros - Migração Painless
 
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
 
Plataforma java: detalhes da JVM
Plataforma java: detalhes da JVMPlataforma java: detalhes da JVM
Plataforma java: detalhes da JVM
 
Melhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQueryMelhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQuery
 
JavaFX 1.2
JavaFX 1.2JavaFX 1.2
JavaFX 1.2
 
Minha aplicação Java vai pra nuvem. E agora?
Minha aplicação Java vai pra nuvem. E agora?Minha aplicação Java vai pra nuvem. E agora?
Minha aplicação Java vai pra nuvem. E agora?
 
Introdução ao OpenLayers
Introdução ao OpenLayersIntrodução ao OpenLayers
Introdução ao OpenLayers
 
php4android: desenvolva aplicações android em PHP
php4android: desenvolva aplicações android em PHPphp4android: desenvolva aplicações android em PHP
php4android: desenvolva aplicações android em PHP
 
JavaScript e JQuery para Webdesigners
JavaScript e JQuery para WebdesignersJavaScript e JQuery para Webdesigners
JavaScript e JQuery para Webdesigners
 
LabMM3 - Aula teórica 09
LabMM3 - Aula teórica 09LabMM3 - Aula teórica 09
LabMM3 - Aula teórica 09
 

Dernier

19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
marlene54545
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
HELENO FAVACHO
 

Dernier (20)

Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfTCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do século
 
Conflitos entre: ISRAEL E PALESTINA.pdf
Conflitos entre:  ISRAEL E PALESTINA.pdfConflitos entre:  ISRAEL E PALESTINA.pdf
Conflitos entre: ISRAEL E PALESTINA.pdf
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
Produção de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptxProdução de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptx
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 
migração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenosmigração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenos
 
Camadas da terra -Litosfera conteúdo 6º ano
Camadas da terra -Litosfera  conteúdo 6º anoCamadas da terra -Litosfera  conteúdo 6º ano
Camadas da terra -Litosfera conteúdo 6º ano
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
 
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptxPlano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
 

Tutorial JavaFX simples