Table Of Content© CasadoCódigo
TodososdireitosreservadoseprotegidospelaLeinº9.610,de10/02/1998.
Nenhumapartedestelivropoderáserreproduzida,nemtransmitida,semauto-
rizaçãopréviaporescritodaeditora,sejamquaisforemosmeios: fotográficos,
eletrônicos,mecânicos,gravaçãoouquaisqueroutros.
CasadoCódigo
Livrosparaoprogramador
RuaVergueiro,3185-8ºandar
04101-300–VilaMariana–SãoPaulo–SP–Brasil
CasadoCódigo
Agradecimentos
Deuscolocouemminhavidapessoasfantásticas,quemeajudam,aconselhamelu-
tamcomigopelasminhasconquistasetambémduranteminhasderrotas.Primeira-
mente,meuagradecimentoéaoNossoCriador,Deus. SemEle,nossavidanãotem
sentido,nãotemluta,nãotemfelicidade. Eleéesempreseráomotivoparaseguir
emfrente,nocaminhoqueElepreparaparamimacadainstante.Agradeçotambém
à minha família, que são meus cúmplices em todos os momentos, de mãos dadas,
ajudando-meatrilharocaminho.Àminhamãe,meupaiemeuirmão,quemeaju-
daramcomensinamentosdecomoenfrentaravidadecabeçaerguida,lutandopelos
nossos objetivos, e mostrando que a dedicação é ponto de prioridade para nossas
conquistas. Àminhasogra,quemefezcrescerpessoalmente,mostrandoabatalha
de perseverar e não desistir daqueles que amamos, minha segunda mãe. E à mi-
nhanamorada,amulherdaminhavida,queenfrentaasbarreiraseobstáculoscom
muitovigorefelicidade,chorando,sorrindo,esbravejando,aconselhando,sendofe-
liz...Agradeçoacadaconversa,acadamomentodecompanheirismo,compreensão
emuitoamorquepassamosjuntos. AgradeçoaDeuspormedardepresentevocê.
EuteamoLaisRenata! Agradeçoaosamigosquemeincentivaramacontinuarlu-
tandopelosmeussonhos,deformaespecialcitoalgunsnomescomoBrunoSouza,
RogérioRymszaeWilliamSiqueira,ecarinhosamentecitoPauloSilveiraeAdriano
Almeida, da Casa do Código, com sua paciência, e me fazendo acreditar em mim
mesmo,comgranderesponsabilidade,equepoderiaconcluirestelivro. Eporfim,
agradeçoavocêleitor,pelocarinhoeppelavontadedefazerdestelivro,seuguiade
JavaFX.Esperoquesejaumaleituraagradáveledivertida!
i
CasadoCódigo
Sobre o autor
ConhecioJavahá3anos,emmeucursotécnicoeminformáticacomfocoemprogra-
mação. Desdeentãodesenvolvosoftwarescomestalinguagem, epretendosempre
crescer com ela. Hoje, sou estudante de Análise e Desenvolvimento de Sistemas, e
tambémsouestagiáriodesenvolvedorJava/Android. Alémdisso,souentusiastaJa-
vaFXe,semprequeposso,desenvolvosoftwarescomestaplataforma,paraaprender
novas“artimanhas”. TenhoumcarinhoespecialpordesenvolvimentodejogosMo-
bile,emAndroid,aindapretendotrabalharcomisto.Recentemente,fuiautordeum
artigodarevistaMundoJ,sobreJavaFX,naediçãodeMarço/Abril(edição58).
iii
CasadoCódigo Sumário
Sumário
1 Apresentação 1
1.1 UmpoucodahistóriadoJavaFX. . . . . . . . . . . . . . . . . . . . . . 1
1.2 PorqueestudarJavaFX? . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Oqueveremosnolivro? . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.4 Organizaçãodolivro . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 ComeçandocomJavaFX 5
2.1 CriandoumnovoprojetocomJavaFX . . . . . . . . . . . . . . . . . . 5
2.2 Desenvolvendooformuláriodelogin . . . . . . . . . . . . . . . . . . . 9
2.3 Dandooprimeirotoquederequinte . . . . . . . . . . . . . . . . . . . 13
3 GolFX-Nossalojadeartigosesportivos 15
3.1 Entendendooproblema . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2 Porondecomeçar?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.3 Utilizandoboaspráticasdeprogramação. . . . . . . . . . . . . . . . . 16
3.4 Vitrinedeprodutos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4 Maistelasdanossaaplicação 29
4.1 Exibiçãodeitemescolhido . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.2 Carrinhodecompras . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.3 Excluindoprodutos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5 Primeirotoquederequinte-CSS 37
5.1 AimportânciadoCSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.2 CriaçãodearquivoCSS . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.3 Alterandocursores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.4 EfeitoHover . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
v
Sumário CasadoCódigo
6 Segundotoquederequinte-Effects 43
6.1 Umabreveintrodução. . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.2 Sombreamentoexterno . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.3 Sombreamentointerno . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
6.4 Reflexãod’água . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
7 Terceirotoquederequinte-TransitionseTimelines 53
7.1 OquesãoTransitionseTimelines? . . . . . . . . . . . . . . . . . . . . 53
7.2 FadeTransition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
7.3 ScaleTransition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
7.4 ParalleleSequentialTransitions . . . . . . . . . . . . . . . . . . . . . . 57
7.5 Timeline. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8 JavaFXvsSwing 63
8.1 Entendendojavax.swing . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.2 JavaFXdentrodoSwing? . . . . . . . . . . . . . . . . . . . . . . . . . . 66
9 MaiscomponentesJavaFX 69
9.1 Accordion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
9.2 HBoxeVBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
9.3 GridPaneparalinhasecolunas . . . . . . . . . . . . . . . . . . . . . . 71
9.4 UmHTMLEditorprontoparavocêusar . . . . . . . . . . . . . . . . . 72
9.5 HyperLinks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
9.6 Afamosaetemidabarradeprogresso . . . . . . . . . . . . . . . . . . 75
9.7 VisualizandoárvorescomTreeView. . . . . . . . . . . . . . . . . . . . 76
9.8 WebViewpararenderizarHTML . . . . . . . . . . . . . . . . . . . . . 78
9.9 PopupControls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
9.10 Gráficosparadarmaisvida . . . . . . . . . . . . . . . . . . . . . . . . . 82
9.11 AudioeVideo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
9.12 Shapesparaocontrolefino . . . . . . . . . . . . . . . . . . . . . . . . . 89
10 JavaFXSceneBuilder 93
10.1 Conhecendoaferramenta . . . . . . . . . . . . . . . . . . . . . . . . . 93
10.2 LibraryPanel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
10.3 HierarchyPanel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
vi
Description:Já conhece Java e quer fazer uma aplicação client side? JavaFX vem dar nova vida ao desenvolvimento desktop com Java. Nesse livro, crie uma pequena aplicação com JavaFX 2.2, para conhecer o essencial dessa API. Aprenda a utilizar CSS, aplicando os conceitos na nossa aplicação, uma loja virtua