PROGRAMAÇÃO DECLARATIVA COM JAVAFX: UM PARADIGMA NA CONSTRUÇÃO DE INTERFACES GRÁFICAS DE SISTEMAS

Embed Size (px)

DESCRIPTION

TCC apresentado em 22.08.2008 sobre a tecnologia JAVAFX

Text of PROGRAMAÇÃO DECLARATIVA COM JAVAFX: UM PARADIGMA NA CONSTRUÇÃO DE INTERFACES GRÁFICAS DE...

  • 1. CENTRO FEDERAL DE EDUCAO TECNOLGICA DO RIO GRANDE DO NORTE GERNCIA EDUCACIONAL DE TECNOLOGIA DA INFORMAO CURSO SUPERIOR DE TECNOLOGIA EM DESENVOLVIMENTO DE SOFTWARE PROGRAMAO DECLARATIVA COM JAVAFX: UM PARADIGMA NA CONSTRUO DE INTERFACES GRFICAS DE SISTEMAS Eder Carlos de Oliveira Nogueira Serrano Orientador: Ricardo Alexsandro de Medeiros Valentim, Dr. (DACGEM/CEFET-RN/Mossor) Natal (RN), agosto de 2008

2. CENTRO FEDERAL DE EDUCAO TECNOLGICA DO RIO GRANDE DO NORTE GERNCIA EDUCACIONAL DE TECNOLOGIA DA INFORMAO CURSO SUPERIOR DE TECNOLOGIA EM DESENVOLVIMENTO DE SOFTWARE PROGRAMAO DECLARATIVA COM JAVAFX: UM PARADIGMA NA CONSTRUO DE INTERFACES GRFICAS DE SISTEMAS Eder Carlos de Oliveira Nogueira Serrano Orientador: Ricardo Alexsandro de Medeiros Valentim, Dr. (DACGEM/CEFET-RN/Mossor) Natal (RN), agosto de 2008 Monografia apresentada Banca Examinadora do Trabalho de Concluso do Curso de Tecnologia em Desenvolvimento de Software, em cumprimento s exigncias legais como requisito parcial obteno do ttulo de Tecnlogo em Desenvolvimento de Software. 3. SUMRIO LISTA DE ABREVIATURAS 4 LISTA DE FIGURAS 5 LISTA DE TABELAS 6 LISTA DE QUADROS 7 RESUMO 8 ABSTRACT 9 1. INTRODUO 10 1.1. OBJETIVOS GERAIS 12 1.2. OBJETIVOS ESPECFICOS 12 1.3. METODOLOGIA 13 1.4. ESTRUTURA DO TRABALHO 13 2. FUNDAMENTAO TERICA 14 2.1 ESTADO DA ARTE 14 2.1.1 PRINCIPAIS TECNOLOGIAS CONCORRENTES 14 2.1.2 PROGRAMAO DECLARATIVA E JAVA 16 2.2 JAVAFX SCRIPT 18 2.2.1 TIPOS BSICOS, ATRIBUTOS E VARIVEIS 18 2.2.2 ARRAYS, STRINGS, IDENTIFICADORES, SEQNCIAS NUMRICAS E FORMATAO 20 2.2.3 ENTENDENDO A ESTRUTURA DE UMA CLASSE: FUNES, OPERAES, EXPRESSES E DECLARAO DE OBJETOS 24 2.2.4 DECLARAO DE OBJETOS, OPERADOR BIND E REFLEXO 29 2.2.5 PRINCIPAIS CLASSES DA API JAVAFX 31 2.2.6 AMBIENTE DE DESENVOLVIMENTO JAVAFX 32 3. FUNDAMENTAO TERICA 34 3.1 CASO DE USO 36 3.2 VALIDAO DAS TECNOLOGIAS 36 3.2.1 JAVA SWING: PROJETO AGENDASWING 36 3.2.2 JAVAFX: PROJETO AGENDAFX 39 3.2.3 COMPARATIVO AGENDASWING VS. AGENDAFX 41 4. CONSIDERAES FINAIS 43 4.1 CONCLUSO 43 4.2 SUGESTES E RECOMENDAES 43 REFERNCIAS BIBLIOGRFICAS 44 4. LISTA DE ABREVIATURAS TCC Trabalho de Concluso de Curso CEFET-RN Centro Federal de Educao Tecnolgica do Rio Grande do Norte HTML RIAs JVM MVC XML JDBC HyperText Markup Language Rich Internet Applications Java Virtual Machine Model-View-Controller Extensible Markup Language Java DataBase Connectivity 5. LISTA DE FIGURAS Figura 01. RIA combina o melhor do Desktop, Web e Comunicaes. Fonte: www.thefocusnetwork.com...................................................................................................................10 Figura 02. Principais Tecnologias RIA. Fonte: www.ibm.com......................................................................................................................................11 Figura 03. Viso Geral da rea de atuao da famlia JavaFX. Fonte: www.sun.com......................................................................................................................................12 Figura 04. Comparao entre Java Swing e JavaFX Script. Fonte: www.sun.com.......................................................................................................................................17 Figura 05. Estrutura de pacotes da API JavaFX..............................................................................................32 Figura 06. Sistema de Agenda AgendaFX......................................................................................................34 Figura 07. Sistema de Agenda AgendaSwing ................................................................................................35 Figura 08. Diagrama de Casos de Uso do Sistema.........................................................................................36 Figura 09. Classe Conexao.java......................................................................................................................37 Figura 10. Funcionalidades Incluir Contato e Remover Contato.....................................................................38 Figura 11. Funcionalidades Listar Contato, Editar Contato e Buscar Contato................................................38 Figura 12. Classe Conexao em AgendaFX.....................................................................................................39 Figura 13. Exemplo de um Frame na classe SearchFrame............................................................................40 Figura 14. Incluso e Remoo de Contato no AgendaFX.............................................................................41 6. LISTA DE TABELAS Tabela 01. Tipos Primitivos de Dados em JavaFX..........................................................................................18 Tabela 02. Operadores de Cardinalidade em JavaFX....................................................................................20 Tabela 03. Todos os operadores da linguagem JavaFX.................................................................................24 Tabela 04. Todas as expresses da linguagem JavaFX.................................................................................26 Tabela 05. Comparativo AgendaSwing x AgendaFX......................................................................................41 7. LISTA DE QUADROS Quadro 01. Exemplo de uma classe JavaFX e seus valores de sada...........................................................19 Quadro 02. Formas de declarao de variveis..............................................................................................20 Quadro 03. Formas de declarao de Arrays..................................................................................................20 Quadro 04. Uso de expresses e predicados em Array JavaFX.....................................................................21 Quadro 05. Adicionar elemento no array.........................................................................................................21 Quadro 06. Remover elemento do array.........................................................................................................22 Quadro 07. Compreenso de Lista em JavaFX..............................................................................................22 Quadro 08. Representao de Strings............................................................................................................22 Quadro 09. Uso de Identificadores..................................................................................................................23 Quadro 10. Sries Numricas em JavaFX......................................................................................................23 Quadro 11. Formatao de Dados em JavaFX...............................................................................................23 Quadro 12. Exemplo de uma funo JavaFX..................................................................................................25 Quadro 13. Exemplo de uma classe JavaFX completa...................................................................................27 Quadro 14. Exemplo de Assert Triggers..........................................................................................................28 Quadro 15. Exemplo de Creation Triggers......................................................................................................28 Quadro 16. Exemplo de Replace Triggers......................................................................................................28 Quadro 17. Exemplo 1 de Declarao de Objetos..........................................................................................29 Quadro 18. Exemplo 2 de Declarao de Objetos..........................................................................................29 Quadro 19. Lazy Evaluation e operador bind..................................................................................................30 Quadro 20. Exemplo de Reflexo em JavaFX.................................................................................................31 8. RESUMO Serrano, Eder Carlos Nogueira. Programao Declarativa com JAVAFX: Um Paradigma na Construo de Interfaces Grficas de Sistemas. Natal, 2008. f. Trabalho de Concluso de Curso (Tecnologia em Desenvolvimento de Software) Gerncia Educacional de Tecnologia da Informao, Centro Federal de Educao Tecnolgica do Rio Grande do Norte, Natal-RN, 2008. O aumento na demanda por interfaces cada vez mais interativas com o cliente, seja em browsers quanto em dispositivos mveis acentua cada vez mais a criao de tecnologias voltadas a aplicaes RIAs Rich Internet Applications (Aplicaes Ricas da Internet). A plataforma Java oferecia at ento seu pacote de desenvolvimento de interfaces grficas java.swing que, na maioria das vezes, ocupava o desenvolvedor com sua complexidade e pouca produtividade.Esse trabalho tem como objetivo apresentar outra soluo, mais prtica, produtiva e rica, a JavaFX. A JavaFX Script, linguagem baseada em programao declarativa, e a interao com a plataforma Java tambm sero temas abordados. Alm disso, objetivo deste trabalho a construo de uma aplicao que mostrar todos os recursos oferecidos pela tecnologia. Palavras-chave: RIAs, Programao Declarativa, Interfaces Grficas, JavaFX. 9. ABSTRACT The increase in the demand for interfaces each time more interactive with the customer, either in browsers how much in devices mobile it accents each time more the creation of directed technologies the applications RIAs - Rich Internet Applications. The Java platform offered until then its package of development of graphical interfaces java.swing that, in the majority of the times, it occupied the developer with its complexity and little productivity. This work has as objective to present one another solution, more practical, productive and rich, the JavaFX. The JavaFX Script, language based on declarative programming,