© 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: