UNIVERSIDADE DO OESTE DE SANTA CATARINA UNOESC DANIEL RODRIGUES CONSTRUINDO APLICAÇÕES DE INTERFACE RICA COM JAVAFX

Tamanho: px
Começar a partir da página:

Download "UNIVERSIDADE DO OESTE DE SANTA CATARINA UNOESC DANIEL RODRIGUES CONSTRUINDO APLICAÇÕES DE INTERFACE RICA COM JAVAFX"

Transcrição

1 UNIVERSIDADE DO OESTE DE SANTA CATARINA UNOESC DANIEL RODRIGUES CONSTRUINDO APLICAÇÕES DE INTERFACE RICA COM JAVAFX Xanxerê 2009

2 DANIEL RODRIGUES CONSTRUINDO APLICAÇÕES DE INTERFACE RICA COM JAVAFX Trabalho de Conclusão de Curso apresentado ao Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas, Área das Ciências Sociais e Aplicadas, como requisito parcial para a obtenção do título de tecnólogo em Análise e Desenvolvimento de Sistemas da Universidade do Oeste de Santa Catarina Campus de Xanxerê. Orientador: Prof. Cristiano Agosti Xanxerê 2009

3 DANIEL RODRIGUES CONSTRUINDO APLICAÇÕES DE INTERFACE RICA COM JAVAFX Trabalho de Conclusão de Curso apresentado ao Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas, Área das Ciências Sociais e Aplicadas, como requisito parcial para a obtenção do título de tecnólogo em Análise e Desenvolvimento de Sistemas da Universidade do Oeste de Santa Catarina Campus de Xanxerê. Aprovada em BANCA EXAMINADORA Prof. Cristiano Agosti Universidade do Oeste de Santa Catarina - UNOESC Prof. André Luiz Forchesatto Universidade do Oeste de Santa Catarina - UNOESC Prof. Rosicler Felippi Puerari Universidade do Oeste de Santa Catarina - UNOESC

4 Dedico este trabalho a minha filha Hadassa e minha esposa Charlei, que têm estado sem a minha companhia nestes últimos tempos, pelo apoio, compreensão e amor.

5 AGRADECIMENTOS A Deus, por ter sido a minha rocha e fortaleza, sendo um refrigério nas horas de dificuldade e participante nas horas de alegria, a Ele toda Glória, Honra e Poder para sempre. A Minha esposa Charlei e minha filha Hadassa pelo apoio e compreensão. A Meus Pais Adair e Ivani por terem sido um referencial para a minha vida, por me ensinarem a respeitar o próximo e acreditar em um sonho. Ao Corpo Docente da Unoesc, em especial aos professores que lecionaram à nossa turma, pela dedicação e pelo desprendimento aos seus afazeres em função do compromisso com os acadêmicos. Aos colegas, pelos laços de amizade. E a todos que colaboraram para que este trabalho fosse concluído.

6 Quanto melhor é adquirir a sabedoria do que o Ouro. Rei Salomão Provérbios 16:16

7 RESUMO Neste trabalho é feita uma introdução à Linguagem de Script JavaFX, é apresentada uma aplicação de exemplo, que demonstra através de seu código, os detalhes da linguagem, numa implementação real. Não é necessário conhecimento em Java, porém conhecimento básico de lógica de programação é desejável. É disponibilizado um grande referencial teórico sobre a linguagem, englobando desde características básicas, como a sintaxe para a declaração de variáveis, como características avançadas, por exemplo, o uso de expressões de vinculação automática para atualizar itens de interface com base em valores do modelo. Os conceitos apresentados na fundamentação teórica são fixados durante a demonstração da construção do aplicativo de exemplo. O Lançamento de JavaFX é recente, mas isto não deve ser considerado uma desvantagem, pois JavaFX roda sobre a máquina virtual de Java, desta maneira, milhares de pessoas já contam com a runtime, e não precisam fazer o download de um plugin para o browser. A adoção da tecnologia, se dará a partir do momento em que as duvidas a respeito da qualidade passarem, JavaFX é rápida, concisa, e muito fácil de aprender, sua sintaxe declarativa, agiliza a criação de interfaces. JavaFX valoriza a expressão visual, e facilita a divisão de trabalho entre um desenvolvedor e um designer. Quando estes dois profissionais interagem, o apelo visual de uma aplicação é aumentado. Palavras-chave: JavaFX. Linguagem de Script. RIA Rich Internet Application

8 ABSTRACT The present paper gives an introduction to the JavaFX Script language. It is presented a sample application that shows through his code, the details of language, in actual implementation. Previous knowledge in Java it is not necessary, but basic knowledge of programming logic is desirable. It is provided a major theoretical framework of the language, covering everything from basic features, like syntax for declaring variables, such as advanced features, for example, the use of automatic binding expressions wich updates the interface items based on values of the model. The concepts presented in the theoretical foundations are set during the demonstration of the construction of the sample application. Release of the JavaFX is new, but this should not be considered a disadvantage, because JavaFX runs on the Java virtual machine in this way, thousands of people already have the runtime, and do not need to download a plugin for the browser. The adoption of the technology will be given as soon as the doubts about the quality pass, JavaFX is quick, concise, and very easy to learn, its declarative syntax, expedites the creation of interfaces. JavaFX values the visual expression, and facilitates the division of work between a developer and a designer. When these two professionals interact, the visual appeal of an application is increased. Keywords: JavaFX. Scripting Language. RIA Rich Internet Application

9 LISTA DE ILUSTRAÇÕES Desenho 1: Arquitetura de JavaFX...21 Desenho 2: Composição de um Stage...21 Quadro 1: Instanciação de Objeto...22 Quadro 2: Declaração de Variáveis...23 Quadro 3: Declaração de Constantes...23 Fotografia 1: Assistente de Novo Projeto do Netbeans...24 Fotografia 2: Configurações de Nome e Local...25 Quadro 4: Classe Main.fx criada pelo Netbeans...26 Fotografia 3: Aplicação de exemplo...27 Quadro 5: Código alterado com variáveis...28 Quadro 6: Alterando var para def...29 Fotografia 4: Propriedades do Projeto...29 Fotografia 5: Tela de Propriedades da Aplicação...30 Fotografia 6: Applet carregado e vinculado ao browser...31 Fotografia 7: Applet sendo arrastado para fora do browser...31 Fotografia 8: Applet Rodando com o browser fechado...31 Quadro 7: declaração de variáveis e inferência de tipos...32 Quadro 8: Expressão com sintaxe similar a de printf()...33 Quadro 9: Tipos Duration e cálculos entre eles...33 Quadro 10: Expressões de extensão...34 Quadro 11: manipulando sequences...34 Quadro 12: excluindo elementos da sequence...35 Quadro 13: Uso do Bind...37 Quadro 14: Bind em funções...37 Quadro 15: Bind with inverse...38 Quadro 16: Expressões de Bloco...38 Quadro 17: Expressão if...39 Quadro 18: Expressão for...39 Quadro 19: Expressão For criando uma sequence...39 Quadro 20: Abordagem JavaFX para for...40 Quadro 21: Usando for com duas clausulas in...40

10 Quadro 22: Clausula where em expressão for...40 Quadro 23: criando funções em JavaFX...41 Quadro 24: Função atribuída a uma variável...41 Quadro 25: Funções Bound...42 Quadro 26: Trigger...44 Fotografia 9: Aplicação...45 Quadro 27: Definição do Stage...45 Quadro 28: Objeto Rectangle...46 Quadro 29: Gradiente do fundo...47 Quadro 30: HBox...47 Quadro 31: Botão de Volume...48 Quadro 32: Frame...49 Fotografia 10: Tela de Opções que herda de Frame...50 Quadro 33: Bloco Init...50 Quadro 34: Opções...51 Quadro 35: Slider bind with inverse...52 Quadro 36: Checkbox Mudo...52 Quadro 37: Botão Fechar...53 Quadro 38: Timeline...53 Quadro 39: Media Player...54 Quadro 40: Classe Persistor...55 Quadro 41: Classe Persistor...56 Quadro 42: Botões de Controle...56 Quadro 43: Constantes...57 Quadro 44: Sequences...57 Quadro 45: Acessando elementos das Sequences...58 Quadro 46: Configuração do HTML...59 Quadro 47: Applet Extension...59 Quadro 48: Gráfico de Pizza...60 Quadro 49: Gráfico de Barras...60 Quadro 50: Arquivo JNLP...61

11 LISTA DE TABELAS Tabela 1 Modificadores de acesso primários...43 Tabela 2 Modificadores de acesso de variáveis...43

12 SUMÁRIO 1 INTRODUÇÃO TEMA PROBLEMA Objetivo Geral Objetivos Específicos JUSTIFICATIVA METODOLOGIA FUNDAMENTAÇÃO TEÓRICA APLICAÇÃO DE INTERNET RICA (RICH INTERNET APPLICATION RIA) Exemplos de Softwares/Linguagens RIA JAVAFX A RIA DA SUN Características Vantagens Arquitetura Introdução à Linguagem JavaFX Script Funcionamento do JavaFX Criação de um Projeto Editando e executando o novo projeto Publicando a aplicação Tipos de Variáveis Características especiais DESENVOLVIMENTO DA APLICAÇÃO CLASSE MAIN CLASSE FRAME ANIMAÇÕES MEDIA PLAYER STORAGE PUBLICANDO COMO APPLET API DE GRÁFICOS PUBLICANDO COMO JAVA WEB START CONSIDERAÇÕES FINAIS REFERÊNCIAS... 63

13 12 1 INTRODUÇÃO Este trabalho faz uma introdução à linguagem JavaFX Script e à sua API na versão através de um aplicativo de Exemplo. Nele, são descritos pontos-chave desta nova linguagem de Script compilada, que aproveita toda a bagagem de Java. Tenta-se abranger a maior parte dos conceitos inseridos por JavaFX, considerando que o leitor tenha conhecimentos básicos de lógica de programação. O Conhecimento de Java, não é necessário, mas para quem a conhece, as principais diferenças são destacadas. JavaFX é uma linguagem que facilita e muito a construção de interfaces, e como toda linguagem de Script, tem foco na produtividade, é uma linguagem recém lançada, mas com um potencial enorme. Pois ela roda sobre a máquina virtual Java, uma tecnologia bastante difundida, e leva ao extremo, o slogan de Java, que é, escreva uma vez, rode em qualquer lugar, pois pode-se desenvolver um código JavaFX que rode, sem alterações, em Celulares, TV s (em Breve) e no Desktop, quer seja através de um Applet, ou através do protocolo Java Web Start. Este trabalho é dividido em basicamente três partes, uma breve contextualização em torno do ambiente Web e tecnologias RIA, uma introdução bastante abrangente à JavaFX Script, a linguagem de programação para JavaFX, e a construção de um aplicativo de exemplo usando esta linguagem. O Aplicativo de Exemplo tem funcionalidade simples, porém seu código-fonte serve para explicar uma boa parte da API JavaFX na versão (versão atual), além de abranger quase que completamente as peculiaridades da Linguagem de Programação JavaFX Script. No momento em que este trabalho é escrito não há livros em Português sobre JavaFX, deste modo, este trabalho tem por objetivo, também, ser um ponto de partida para a familiarização com JavaFX para as pessoas com dificuldade na língua inglesa.

14 TEMA Construindo Aplicações de Interface Rica com JavaFX. 1.2 PROBLEMA A falta de características/funcionalidades em Aplicativos Web que estão presentes em aplicativos Desktop causa certo desconforto ao migrar o software para a Web, pois o usuário estava acostumado com estas funcionalidades que não mais estão presentes. É preciso construir um aplicativo Web com experiência de navegação semelhante ao Desktop, como arrastar e soltar e desfazer (COSTA, 2008), maior responsividade, ou seja, que não se tenha que esperar pela resposta do servidor para uma ação que pode ser executada localmente. Também é preciso que este software facilite o uso de multimídia. 1.3 OBJETIVOS Objetivo Geral Desenvolver um aplicativo Web utilizando a tecnologia JavaFX Objetivos Específicos Compreender as especificidades do ambiente Web. Compreender o funcionamento da tecnologia JavaFX; Estudar o uso da tecnologia JavaFX e de suas formas de interação; Estudar a ferramenta de desenvolvimento Plugin do Netbeans IDE; Criar uma referência inicial à Linguagem JavaFX Script que possa servir de ponto de partida para trabalhos futuros.

15 JUSTIFICATIVA Num mundo cada vez mais conectado, a Web tornou-se o principal canal de comunicação e relacionamento. Os softwares começam a seguir a tendência de migrar para esta nova plataforma, que elimina vários obstáculos, como a distância, e minimiza outros, como o tempo, por exemplo. Porém ainda não se pode afirmar que a Web substitui completamente o Desktop, pois sua usabilidade é menor. Com base nisso, e na nova tecnologia JavaFX tenta-se unir a dinamicidade da Web e o poder do Desktop. Esta nova tecnologia usa a plataforma Java como base, o que faz com que sua Runtime já esteja disponível em mais de 4,5 bilhões de dispositivos no mundo (SUN, 2009), além da possibilidade de usar todo o código desenvolvido em Java e a extensa biblioteca padrão de Java. Estas características se somam a características como: linguagem parcialmente declarativa, Tipagem Forte Estática, triggers, binding, entre outras.

16 METODOLOGIA Para o estudo de novas tecnologias, é necessário bastante pesquisa, no início da vida de JavaFX, os poucos exemplos que existiam vinham do Site de JavaFX, e poucos blogs comentavam a respeito de seus pré-releases. JavaFX passou por muitas mudanças, desde que suas primeiras versões foram disponibilizadas aos desenvolvedores, então com o lançamento da versão 1.0 em dezembro de 2008, a maioria do código anterior tornou-se incompatível binariamente, além de várias mudanças terem sido feitas na Linguagem JavaFX Script propriamente dita, diante disso, boa parte do material encontrado em blogs de entusiastas da tecnologia, tornou-se defasado da noite para o dia. Além desta quebra, houve mais duas atualizações, a 1.1 e a 1.2, que também tiveram mudanças significativas com quebra de compatibilidade com as versões antigas. Desta maneira o conteúdo utilizável ficou bastante reduzido. Com o lançamento da versão 1.2 no JavaOne 2009, foram lançados três livros já compatíveis com esta versão, então a revisão bibliográfica ficou restrita a poucas fontes. A Revisão Bibliográfica foi objeto de pesquisa em livros, revistas recentes e na internet em fontes confiáveis, como a página da Sun desenvolvedora do JavaFX e nos sites mantidos pelos escritores dos livros citados anteriormente, que tem um maior contato com a equipe de desenvolvimento de JavaFX. Para o desenvolvimento da aplicação será usada o NetBeans IDE em versão específica para o desenvolvimento com JavaFX, pois já vem com o plugin instalado, o NetBeans foi escolhido por ser a IDE suportada pela Sun, a criadora de JavaFX. O NetBeans é usado na plataforma Windows, pois esta plataforma é, por enquanto a plataforma mais compatível com JavaFX, tendo disponível para ela um Emulador de Aparelho Móvel, que possibilita testar as aplicações desenvolvidas para o ambiente Mobile, além de, durante os testes iniciais ter demonstrado uma maior eficiência na renderização de áreas transparentes e gradientes. A aplicação também foi testada em todas as opções de execução, Mobile, Desktop, Java Web Start e Applet, inclusive, com a versão Applet sendo testada em três navegadores: Chrome , Firefox e Internet Explorer 8.

17 16 2 FUNDAMENTAÇÃO TEÓRICA De acordo com Protta (2008), uma das maiores tendências atualmente é o desenvolvimento e uso de WebApps Aplicativos remotos acessados pelo navegador que têm se aperfeiçoado ultimamente. Segundo Soares Filho (2003), migrar software para a Web pode gerar uma economia de até 85%, e vários são os motivos para se migrar um software para a Web. Dentre as vantagens, podemos citar: acesso ao programa/dados em qualquer lugar conectado à internet; facilidade no compartilhamento de informações; facilidade na instalação e atualização de software; entre outras vantagens (MACORATTI, 2009). Porém, a sua tecnologia padrão (X)HTML - não oferece uma experiência de navegação e utilização tão intuitiva como a que é conseguida em um sistema Desktop, uma mesma aplicação pode se comportar de uma forma diferente visual ou funcionalmente em diferentes ambientes, e a interação com um aplicativo Web difere e muito da interação com um software Desktop (MACORATTI, 2009). Para suprir a lacuna, vem se buscando uma alternativa que una o melhor dos dois mundos (COSTA, 2008). As chamadas Rich Internet Applications tentam aproximar a experiência de navegação de um usuário Web a um usuário Desktop (WIKIPÉDIA, 2009). 2.1 APLICAÇÃO DE INTERNET RICA (RICH INTERNET APPLICATION RIA) Primeiramente, deve-se descrever o que é o termo Aplicação de Internet Rica, em inglês RIA (Rich Internet Application). O termo RIA foi cunhado pela empresa Macromedia (incorporada pela Adobe) para descrever aplicações que tenham características de software Desktop, mas rodem na Web (ADOBE, 2009). Segundo Wikipédia (2009) algumas características que nos permitem classificar um software como RIA são: rodar em um navegador processar as informações no navegador, mas manter os dados no servidor de aplicações. Executar em uma sandbox 1 (restringe o acesso ao sistema) 1 Ambiente separado em que uma aplicação roda com restrições (SINGH, 2004)

18 17 Processar as informações no lado do cliente agiliza a interação entre a aplicação e o usuário, pois diminui o volume de dados transmitidos entre cliente e servidor (WIKIPÉDIA, 2009). De acordo com Costa (2008), a experiência do usuário com o software é melhorada em relação ao usuário Web convencional (HTML Servidor Cliente), pois várias ações são feitas localmente, o que evita a troca de informações entre cliente e servidor, uma operação que pode ser demorada. O termo riqueza, segundo Web Design Development India (2009), significa que as mídias suportadas por uma Aplicação desta categoria são amplas, e de uma forma geral, para ser considerada rica, a tecnologia deve suportar, entre outras mídias: Animações; Múltiplas Fontes Conferencia Online Gráficos Vetoriais ou Rasterizados Áudio; Vídeo e outros. De acordo com Wikipédia (2009), entre outros benefícios passiveis de destaque estão: equilíbrio na carga de trabalho entre cliente e servidor; ações executadas no cliente não precisam necessariamente esperar uma resposta do servidor (assincronismo); e diminuição do tráfego na rede. Também destacamos algumas restrições: O tempo de carregamento pode aumentar devido ao fato de ser necessário carregar a client-engine (extensão do navegador que traz inteligência ao cliente); Os sites de busca podem não visualizar os dados de uma aplicação RIA. Segundo Macoratti (2009) o uso de aplicações RIA justifica-se pois ao contrário de uma aplicação Desktop, as RIAs não necessitam de instalação, sua atualização é feita no servidor, novas versões são usadas automaticamente, a aplicação é acessível de qualquer computador conectado a internet, ou seja, o usuário não fica preso a um só computador, pois os dados estão na rede, independência de plataforma (sistema operacional e browser), menor possibilidade de infecção de vírus nas aplicações, entre outras vantagens.

19 Exemplos de Softwares/Linguagens RIA Pode-se citar vários exemplos de linguagens que permitem implementação RIA, abaixo são elencadas as principais, segundo Wikipédia (2009) Javascript - Foi a primeira linguagem que permitiu execução de código no lado do cliente e que teve adoção maciça dos navegadores. Ajax - Acrônimo para Asynchronous Javascript and XML, em português Javascript e XML assíncronos. É um conjunto de tecnologias e técnicas que permitem criar aplicações que interagem com o usuário de uma maneira melhor do que o HTML isolado. Ela pode ser usada com várias linguagens, como Java, PHP, Ruby. Adobe Flash, Adobe Flex, Adobe Air - Adobe Flash usado no inicio para dar dinamismo às páginas, antes estáticas, da Web através de animações e aplicações através de sua linguagem Action Script. O Adobe Flex permite criar interfaces em flash compilando a aplicação em MXML, e o Adobe Air une HTML, Ajax, Flash e PDF. Microsoft Silverlight - Concorrente direto do flash, utiliza XAML e é baseado na plataforma.net 3.0, somente utilizado na plataforma Windows. Controles AcitveX - Somente usado no Internet Explorer, não roda numa sandbox, o que o torna vulnerável a vírus e outras ameaças. OpenLaszlo - Única RIA capaz de compilar código para duas runtimes diferentes (Adobe Flash bytecode e DHTML/Ajax) a partir de um mesmo fonte. Curl, Rebol, Seaside - Opções ao Java e JVM, são tão antigas quanto o Java. Applets Java - Uma das primeiras aplicações do Java, um dos primeiros RIA, são pequenas aplicações Java embutidas na página HTML. Aplicativos Java - Através do protocolo Java Web Start podem ser lançados via browser aplicativos Java em todo o seu poder. JavaFX - Nova Tecnologia da Sun para aplicações RIA.

20 JAVAFX A RIA DA SUN Com a Compra da SeeBeyond, a Sun trouxe junto Chris Oliver e seu projeto F3 (Form Follows function A Forma segue a função), uma linguagem RIA que utiliza Swing e Java2D, na conferência JavaOne, a Sun anuncia JavaFX, composta do JavaFX Script (antigo F3) e do JavaFX Mobile (Adquirido através da incorporação da empresa Savaje). Com o lançamento da JRE6u10, a runtime do JavaFX já estava pronta. A partir do JRE6u12 toda instalação do JRE instalava a runtime do JavaFX. (DOEDERLEIN, 2009, p. 18) Em 4 de Dezembro de 2008, a Sun lança oficialmente JavaFX Script 1.0, porém a versão Mobile só seria lançada em Segundo Doederlein (2009), a Sun tem planos para no início de 2010 lançar o JavaFX TV juntamente com a versão 2.0 da versão Script Características De acordo com Doederlein (2009, p. 19), JavaFX Script é em parte declarativa, o que significa que ela se preocupa em dizer o que fazer e não como fazer (paradigma imperativo). É Orientada a Objetos, roda na JVM, utiliza Classes Java, tem tipagem estática e gera bytecode. Sobre o JavaFX 2, a Sun (2009, tradução nossa) descreve: JavaFX fornece um modelo unificado desenvolvimento e implantação para a construção de aplicações cliente ricas que integram mídia imersiva rica, como áudio e vídeo, gráficos, texto rico e serviços Web. JavaFX permite aos desenvolvedores de criação programarem em um contexto visual, assim, ajudando-os a trazer suas idéias para a vida mais rápido e melhor. 2 JavaFX provides a unified development and deployment model for building rich client applications that integrate rich immersive media such as audio and video, graphics, rich text and web services. JavaFX allows creative developers to program in a visual context thus helping them to bring their ideas to life quicker and better. (SUN, 2009)

21 Vantagens Conforme a Sun 3 (2009) pode-se enumerar várias vantagens da linguagem JavaFX: facilita a junção de áudio, vídeo, animação, gráficos e texto. Os gráficos em 2D podem sofrer transformações em perspectiva 3D (gráficos 3D reais em breve). aspectos da animação avançada incluem timeline, animação por keyframe, e animação baseada em caminho. Pode-se reutilizar bibliotecas Java, o que preserva investimentos feios nesta tecnologia. Instalação fácil com Arrastar-e-instalar, simplesmente arraste a aplicação para fora do Navegador, depois a acesse através de um ícone no Desktop. Linguagem simples e declarativa Arquitetura O Desenho 1 é uma representação gráfica da arquitetura de JavaFX. Ela é composta pela JavaFX Runtime(item 1), um Ambiente em Tempo de Execução específico para JavaFX que é baixado juntamente com a JRE Java Runtime Environment a partir da versão 6u10 da JRE, e para aqueles que tem versões anteriores, a JRE baixa apenas a Runtime JavaFX. O item 2, representa a camada Common Elements (Elementos Comuns) que contém as APIs Application Programming Interfaces que são comuns a todas as plataformas, ou seja, se o código for desenvolvido usando apenas estas API s, ele será executável em todos os perfis com uma JavaFX Runtime disponível. Sobre a Commons Elements, podese ver, destacado com os números 3, 4 e 5 as APIs específicas para Desktop, TV e Dispositivos móveis. O item de número 6 representa o Framework que contém os blocos de código de aplicação, à direita o desenho mostra, que a lado a lado com estas tecnologias estão as ferramentas para desenvolvedores (item 7), e também, 3 JavaFX makes it easy to integrate video, audio, graphics, animation and rich text. Applications can combine audio/video and 2D graphics with 3D perspective transform ( true 3D graphics coming soon) [...] Advanced animation features include timelines, keyframe animation, tweening, and path based animation [...]Java developers can preserve existing investment by reusing Java libraries in JavaFX applications [...]With Java SE 6 update 10 (and above) you can Drag-to-Install JavaFX applications simply by dragging them out of your browser - you can then relaunch the applications directly from your desktop [...]It is a simple, easy-to-learn, declarative scripting language.

22 21 as ferramentas para Designers (item 8). Sobre esta plataforma é que rodam as aplicações JavaFX (item 9), e todo este conjunto tem como base a Maquina Virtual Java (item 10). Desenho 1: Arquitetura de JavaFX Fonte: Introdução à Linguagem JavaFX Script Segundo Doederlein (2009, p.19-20), a linguagem lembra bastante Java propriamente dita, podemos ver em um código-fonte com sintaxe e declarações conhecidas a um programador Java, como class, import, package, delimitação de bloco por chaves, etc, porém sua API acrescenta novos termos e conceitos que serão resumidamente expostos posteriormente. Segundo WEAVER e outros (2009, p. 99), a metáfora do JavaFX é um teatro. Temos um palco (Stage), e dentro deste palco temos uma ou mais cenas (Scene). Desenho 2: Composição de um Stage Fonte:

23 22 Stage - É o nível mais alto em um programa JavaFX como se vê no desenho 2. Ele contém todos os Scenes. (SUN, 2009) A Stage é que contém a interface com o usuário, ela pode ser implantada no Desktop (tendo uma barra de títulos e bordas ou não), em um navegador (como um applet dentro de uma área retangular), ou em dispositivos móveis (diretamente na tela do dispositivo). (WEAVER et al., 2009) Scene - Uma superfície onde se pode desenhar conteúdo gráfico. JavaFX desenha tudo em um Scene e todos os objetos dentro de um Scene são objetos gráficos (descendem de Node). Contém os Nodes. (SUN, 2009) Custom Node - Subclasse de Node, pode ter um Node Filho. (SUN, 2009) Group - Sequência de Nodes agrupados. (SUN, 2009) Node - É um elemento numa Scene, (SUN, 2009) Segundo Doederlein (2009, p. 40), num primeiro contato com código JavaFX Script, um programador Java 4, logo percebe algumas diferenças, como por exemplo: A falta de uma declaração de classe, e a definição de funções, variáveis e sentenças espalhadas pelo escopo global do Script; o return é implícito na função; apesar de JavaFX suportar o construtor new de Java, ela utiliza sua própria sintaxe, chamada de Objeto Literal, como pode-se observar no quadro 1: Quadro 1: Instanciação de Objeto Fonte: O Autor Os iniciadores são separados por vírgula, ponto e vírgula ou espaços. O objeto Stage contém uma variável chamada content que é do tipo Node[], ou seja, ela é uma sequence 5 de Nodes. Todos os seus elementos envoltos por um par de colchetes [ ], que pode ser omitido no caso de iniciar somente um elemento. O objeto raiz Stage equivale a uma janela, ele tem propriedades com nomes facilmente identificáveis (width, heigth, title...), ela contém um objeto Scene que contém a parte visual da Janela que contém vários ou um objeto Node com o conteúdo da Janela. 4 Linguagem de Programação criada pela Sun Microsystems, roda em uma Máquina virtual 5 Tipo de Array primitivo de JavaFX

24 23 As variáveis são declaradas da maneira retratada no quadro 2: Quadro 2: Declaração de Variáveis Fonte: O Autor Analise que na instrução acima, no primeiro exemplo o tipo da variável não foi informado, isto se deve à Inference Engine 6 do compilador JavaFX, que infere o tipo da variável em tempo de compilação, a variável é estaticamente tipada. (ANDERSON; ANDERSON, 2009, p. 44). Porém é perfeitamente possível determinar explicitamente o tipo, como no segundo ou terceiro exemplo. Nos casos em que o Mecanismo de Inferência não conseguir determinar qual o tipo da variável, o compilador avisa (ANDERSON; ANDERSON, 2009, p. 19). As constantes usam a sintaxe presente no Quadro 3: Quadro 3: Declaração de Constantes Fonte: O Autor De acordo com Doederlein (2009), o operador && do Java é substituído por and, assim como por or, além do operador de negação, que em JavaFX não é o ponto de exclamação!, mas sim not. A inferência do tipo também pode ser usada na declaração de funções, tanto para definir o tipo dos Parâmetros, como também o seu tipo de retorno. JavaFX conta com variáveis globais como DIR que corresponde ao diretório raiz do Script, FILE que é o caminho do arquivo do Script e PROFILE que corresponde ao ambiente em que o Script está sendo executado. Outra pequena mudança é o casting 7 que ao invés de usar o formato do Java é feito desta maneira: <valor> as <tipo>. A propriedade Timeline é uma linha do tempo, usada em animações. No método de animações chamado keyframing, determina-se o estado da animação em instantes chave, e os instantes intermediários são criados pela engine de animação, 6 Mecanismo que deduz o tipo da variável em tempo de compilação. 7 Conversão de Tipo Explícita

25 24 através de interpolação. (DOEDERLEIN, 2009) A sintaxe declarativa torna fácil a assimilação por profissionais de outras áreas (como Designers, por exemplo), enquanto os programadores podem desenvolver em Java puro, isso auxilia qualquer projeto de software, pois traz uma maior divisão de tarefas, cada um fazendo a sua parte (SUN, 2009) Funcionamento do JavaFX Através do desenvolvimento de uma aplicação simples pode-se analisar mais detalhes da sintaxe de JavaFX, acompanhando desta maneira, a compreensão da linguagem se torna mais fácil Criação de um Projeto Após a instalação do Ambiente de Desenvolvimento e sua configuração, que não será tratada neste trabalho, é preciso criar um novo projeto no Netbeans, através do Menu Arquivo Novo Projeto, ou através da combinação de teclas Ctrl + Shift + N. Surgirá o Assistente de Novo Projeto (Fotografia 1): Fotografia 1: Assistente de Novo Projeto do Netbeans

26 25 Após a escolha de JavaFX em Categorias, clica-se no botão próximo, que mostrará a próxima página do assistente onde definem-se as propriedades restantes do novo projeto. Nesta nova tela (Fotografia 2), em Project Name, digita-se o Nome do Projeto, é possível definir uma pasta para salvar o projeto em Project location através do botão browse, se a localização sugerida pelo Netbeans não for conveniente. Se o Projeto já tem código fonte criado sem o Netbeans, é necessário marcar o RadioButton From Sources a acrescentar a(s) pasta(s) do código fonte usando o botão Add Folder, do contrário mantém-se a opção padrão Empty Project para projetos iniciados do zero. Fotografia 2: Configurações de Nome e Local Em Set As Main Project, é definido se este projeto será o projeto principal do Netbeans, e em Create Main File, escolhe-se se o Netbeans criará o arquivo Principal do Projeto e define-se o pacote e o nome do projeto, em nosso exemplo, alteramos a sugestão do Netbeans de tccjavafx.main para gui.main.

27 Editando e executando o novo projeto O Arquivo criado pelo Netbeans apresenta um Stage e uma Scene. Analisando este código (Quadro 4) pode-se ver a sintaxe declarativa em ação. Entre as linhas 8 e 24 ocorre a instanciação de um objeto Stage, este objeto tem suas variáveis. Weaver et al. (2009, p. 14) apresenta: width: determina a largura do Stage height: determina a altura do Stage title: determina o titulo do Stage, que aparecerá na barra de títulos. scene: contém um objeto Scene, que é o que realmente irá aparecer na tela da Aplicação. A classe Stage contém muitas outras variáveis, que serão discutidas mais adiante. Entre as linhas 12 e 23 é atribuída à variável scene do Objeto Stage um Objeto Scene, e atribuída a sua variável content um Objeto Text, que por sua vez instancia um objeto Font, desta maneira é possível ver que, a sintaxe declarativa e aninhada de JavaFX facilita a leitura e interpretação na criação de GUIs (LOPES, 2009), já que percebemos a estrutura da GUI mediante o aninhamento das expressões. Quadro 4: Classe Main.fx criada pelo Netbeans No código visualizado no Quadro 4 são criados quatro objetos, porém o operador new não foi usado nenhuma vez, isso é possível devido aos Objetos Literais que instanciam e atribuem valor aos atributos/variáveis das classes JavaFX

28 27 de uma só vez. Na criação dos objetos literais são usadas Chaves { } que englobam a atribuição de valores ás variáveis. Percebe-se que a variável content de Scene tem a sua atribuição de valor englobada por colchetes [ ], porque esta variável recebe uma Sequence (Array) de Nodes, toda Sequence é cercada por colchetes e seus elementos separados por virgulas. Quando executamos este código no Netbeans o resultado é mostrado na Fotografia 3: Fotografia 3: Aplicação de exemplo Olhando novamente para o Quadro 4, percebe-se que não há nenhum método public static void Main, mesmo assim, o compilador gera uma arquivo executável. É porque em JavaFX todos arquivos que são considerados Scripts ganham em tempo de compilação um método run() que é análogo ao public static void Main de Java implícito, caso ele não tenha sido declarado no corpo do Script. E então, o que é considerado Script para JavaFX. Segundo Weaver e outros (2009, p. 205): Um Script é um fonte de JavaFX Script que pode ser compilado e executado, e pode conter definições de classe, definições de função, declarações de variáveis e constantes, e expressões soltas. Expressões soltas são expressões que aparecem no nível mais alto de um Script. 8 Então, todo Script que tenha expressões soltas loose expressions em inglês terá um método run() implícito. Há uma restrição para esta regra, JavaFX não permite que arquivos que tenham expressões soltas, tenham entidades (variáveis ou constantes) com visibilidade pública. Neste caso é necessário declarar explicitamente um método run() e as expressões soltas deverão obrigatoriamente estar inseridas neste método. Na construção da aplicação faz-se uso de uma característica de JavaFX, que são as expressões de JavaFX, em JavaFX quase tudo é considerado uma expressão e retorna um valor (WEAVER et al., 2009, p ), inclusive a atribuição de valores, por exemplo, quando se atribui um valor a alguma variável, a 8 A script is a JavaFX Script source file that can be compiled and then run, and may contain class definitions, function definitions, variable and constant declarations, and loose expressions. Loose expressions are expressions that appear at the top level of a script.

29 28 própria expressão de atribuição retorna um valor, que no caso é o próprio valor da atribuição, assim podemos alterar o código do exemplo anterior para podermos acessar os atributos dos objetos instanciados através de variáveis. O código com as alterações está no Quadro 5. Nas linhas 12 e 13 são criadas as variáveis através da palavra-chave var e def, uma variável para armazenar o Scene e uma constante para armazenar o Stage. Quando se têm variáveis que não terão seu conteúdo alterado, é importante usar def ao invés de var, pois o compilador pode fazer otimizações no bytecode (WEAVER et Quadro 5: Código alterado com variáveis al., 2009 p.32), quando se usa def, é obrigatória a atribuição de um valor inicial. No exemplo acima não pode-se definir a variável scene como def porque ela não recebe valor inicial e o compilador não permite a declaração da variável no meio de uma instanciação de um objeto literal, neste caso, na instanciação do Stage. A solução poderia ser instanciar o scene fora da instanciação do stage, atribuindo a uma constante de nome def e depois atribuindo esta constante ao atributo scene de Stage, como demonstrado no Quadro 6: Pode-se ver na linha 28 do quadro 6 o acesso ao atributo content de Scene feito através da referência obtida pela constante scene. Também percebe-se nesta mesma linha mais um pouco da característica declarativa de JavaFX, a sintaxe para inclusão de um Node em uma Sequence é muito similar à sintaxe SQL (DOEDERLEIN, 2009, p 42).

30 29 Quadro 6: Alterando var para def Publicando a aplicação Com JavaFX é possível publicar a aplicação de várias maneiras (SUN, 2009), além da maneira padrão, também pode-se fazer o deployment via Java Web Start, via Browser em um Applet ou via Emulador de Celular. Para alterar o modo de execução de um projeto no Netbeans clique com o botão direito sobre o projeto no painel Projetos, depois clique em Propriedades, será exibida a tela de propriedades do Projeto, à esquerda no menu categorias, selecione Run. Será exibida a tela apresentada na Fotografia 4: Fotografia 4: Propriedades do Projeto Escolhendo Web Start Execution, a aplicação será executada via Java Web Start, Run in Browser, executará a aplicação como um Applet na janela do browser e Run in Mobile Emulator rodará a aplicação no Emulador de Telefone Celular do JavaFX SDK.

31 30 No menu Application Fotografia 5 é possível ajustar estas opções: Fotografia 5: Tela de Propriedades da Aplicação Nome do Programa e Empresa Responsável, (válidos em todos os ambientes) largura, altura, se o Applet é arrastável para fora do navegador (aplicável somente para a versão Applet), e se o aplicativo é auto-assinado e se ele vai usar compressão Pack200 (essas últimas são válidas para aplicativos publicados através do Protocolo jnlp do Java Web Start). A opção de auto-assinar o Aplicativo é válida para fins de teste, para se publicar uma aplicação efetivamente o ideal é certificá-la em uma empresa qualificada para isso como VeriSign 9 ou Thawte 10 (WAEVER, 2009, p.23) Se você marcou a caixa de seleção Draggable Applet, e como modo de execução você escolheu run in Browser, o aplicativo será executado através do browser padrão do sistema, então é possível destacá-lo dá página à qual o Applet é vinculado. Para isso é necessário segurar a tecla Alt pressionada enquanto arrasta e solta o Applet. Na Fotografia 6, pode-se ver a aplicação docked ou ancorada no browser, na Fotografia 7, esta aplicação sendo undocked, ou seja, sendo desvinculada do browser, e finalmente, na Fotografia 8, a aplicação está rodando em modo Standalone, fora do browser, inclusive com o browser fechado. Se o browser for fechado antes do Applet, ao fechá-lo ele criará um atalho na Área de trabalho, no

32 31 Menu Iniciar ou em Ambos (dependendo da configuração feita no arquivo jnlp), caso contrário, o Applet retornará à aba que ele era vinculado (dependendo do método usado para fechar o aplicativo, se usado o método stage.close() o aplicativo retornará ao browser, se usado o método FX.exit() o programa será encerrado). Fotografia 6: Applet carregado e vinculado ao browser Fotografia 7: Applet sendo arrastado para fora do browser Fotografia 8: Applet Rodando com o browser fechado

33 Tipos de Variáveis Conforme já mencionado, JavaFX usa um mecanismo de inferência de tipos, que determina o tipo de uma variável em tempo de compilação, sendo assim, você não precisa indicar explicitamente o tipo da variável para cada declaração, pois a Inference Engine deduz o tipo da variável com base na sua primeira atribuição de valor (ANDERSON; ANDERSON, 2009 p.19). Por exemplo, no Quadro 7, os tipos das variáveis comprimento e raio são deduzidas pela Inference Engine como Integer e Number, respectivamente. As variáveis nome, saudação e concatenado são do tipo String, ligado, do tipo Boolean, duração do tipo Duration e lista e quadrados são sequences de Strings e Rectangles, respectivamente. Quadro 7: declaração de variáveis e inferência de tipos Em JavaFX, os tipos primitivos são diferentes dos tipos primitivos de Java, que não têm uma classe Java que os encapsula, tipos primitivos de JavaFX tem sempre uma classe de Base, tem valores padrão para quando uma variável é declarada sem um inicializador, não admitem null (exceto para tipos de Classe) (WEAVER et al., 2009, p. 46), e são tipos de valor, ou seja, para comparar duas Strings, pode-se usar o operador ==, diferentemente de Java, onde a comparação usando este operador compararia as referências ao objeto, em JavaFX é feita uma comparação de valores. (DOEDERLEIN, 2009, Ed. 69) Boolean: O tipo Boolean armazena os valores true ou false (ANDERSON; ANDERSON, 2009, p. 61), é importante destacar que, diferentemente de Java, os operadores lógicos são escritos literalmente como and, or e not (WEAVER et al., 2009, p. 47). Integer: O tipo Integer tem como Classe de base a classe java.lang.integer, e todos os métodos de java.lang.integer podem ser usadas para o tipo Integer de JavaFX, o Valor padrão é 0. É possível inicializar um tipo Integer de três maneiras, do modo Inteiro, com um numero inteiro não precedido de zero e sucedido por

34 33 números de 0 a 9, do modo octal, precedido por zero e sucedido por números de 0 a 7, ou do modo hexadecimal, precedido por 0x ou 0X e sucedido por números de 0 a 9 ou letras de "a" a "f" ou "A" a "F" (WEAVER et al., 2009, p. 48). Number: Segundo Weaver e outros (2009, p. 53) Number tem como classe de base, a partir da versão 1.1 de JavaFX a classe java.lang.float. Number suporta a notação decimal e a notação científica. Na notação decimal pode-se omitir a parte inteira ou a parte decimal, desde que seja utilizado o ponto separador. Na notação científica, declara-se o valor decimal, seguido da letra E, e o expoente positivo ou negativo. Ex.: 4.3E-21, o valor padrão é 0.0. String: O tipo String tem como valor padrão uma String vazia, ou seja,. Como os outros tipos de valor, String não aceita null. Pode ser usada tanto aspas duplas, como aspas simples para delimitá-lo. Dentro de uma String de aspas duplas, as aspas simples não precisam ser escapadas por barra-inversa (\) e vice-versa. A concatenação de duas Strings em sequência é automática, não se usa o caractere de soma (+), muito menos a vírgula (,). Dentro de uma String, os caracteres de Chaves ({,}) delimitam uma expressão como visto no Quadro 7, uma String contém uma variável entre chaves (ANDERSON; ANDERSON, 2009, p. 45). Todos os métodos de java.lang.string, que é a classe de base de String podem ser usados (WEAVER et al., 2009, p. 55). Dentro de uma expressão a saída pode ser formatada com a mesma sintaxe de System.printf() (DOEDERLEIN, 2009), como aparece no Quadro 8. Quadro 8: Expressão com sintaxe similar a de printf() A saída de print() no código do Quadro 8 é 5.8. Duration: O tipo Duration é usado para representação de tempo, usado em animações, ele é criado com um Integer ou number sucedido por uma unidade de tempo sem espaço entre eles. (WEAVER et al., 2009, p.57) Quadro 9: Tipos Duration e cálculos entre eles

35 34 Como pode-se ver no Quadro 9, pode-se efetuar operações de soma, subtração e divisão entre tipos Duration, a multiplicação entre dois valores de tipo Duration não é permitida, mas eles podem ser multiplicados por valores Inteiros ou de ponto flutuante. Ao contrário dos outros tipos primitivos de JavaFX que tem classes base em java.lang.*, o tipo Duration tem como classe base uma classe JavaFX, javafx.lang.duration. (WEAVER et al., 2009, p. 57) Sequences: Segundo Anderson e Anderson, (2009, p. 21) Sequences são coleções de objetos que você pode acessar sequencialmente. O valor padrão de uma sequence é uma sequence vazia, e o tipo de uma sequence é o tipo dos seus elementos seguido por colchetes, um exemplo é Boolean[]. Não é possível ter elementos null no interior de uma sequence (WEAVER et al., 2009, p. 59). Segundo Weaver e outros (2009, p. 60) uma sequence pode ser criada usando uma declaração explicita, como usando expressões de extensão. Uma expressão de extensão é composta por um valor inicial e um valor final separados por ponto-ponto (..), e opcionalmente um valor de passo, e é delimitada por colchetes, exemplos no Quadro 10. Quadro 10: Expressões de extensão É importante ressaltar que este tipo de expressão é representada internamente de uma maneira eficiente por JavaFX, por exemplo, JavaFX não ira criar realmente uma sequence com 500 números para atribuir à variável f da Quadro 10, pois isso ocuparia muita memória (WEAVER et al., 2009, p. 60). Para manipularmos sequências, usamos uma sintaxe bem similar à sintaxe SQL, como podemos ver no Quadro 11. Quadro 11: manipulando sequences

36 35 Na instrução insert <valor> into <sequence>; o elemento é adicionado no final da sequence. Em insert <valor> before <sequence[indice]>; o valor é inserido na sequência na posição antes do valor do índice indicado, ou seja, se inserido apenas um objeto/valor ele passará a ocupar a posição indicada. Já em insert <valor> after <sequence[indice]>; o valor é inserido na sequência na posição após o valor do índice indicado (ANDERSON; ANDERSON, 2009, p. 57). Quando se insere uma sequence dentro de outra, a sequence não é aninhada, ela é planificada dentro da sequence que a recebe (WEAVER et al., 2009, p 66). Por exemplo, a saída para o comando print() do Quadro 11 é: [ 0, 2, 4, 6, 45, 46, 47, 8, 10, 12, 14 ] Percebe-se que os valores da sequence seq do quadro 11 não estão separados dos demais. Ao excluirmos elementos da sequence a sintaxe é similar: Quadro 12: excluindo elementos da sequence A sequence sequencia antes das manipulações de exclusão é formada por estes elementos: [ 0, 2, 4, 6, 45, 46, 47, 8, 10, 12, 14 ]. Após a primeira instrução delete, o elemento de índice 4 é excluído. delete sequencia[4]; [ 0, 2, 4, 6, 46, 47, 8, 10, 12, 14 ] A segunda instrução exclui os elementos de índice 2 ao 4 inclusive. delete sequencia[2..4]; [ 0, 2, 47, 8, 10, 12, 14 ] A terceira instrução exclui os elementos de índice 5 até o fim da sequence, já que um valor final não é declarado à expressão de extensão. delete sequencia[5..];

37 36 [ 0, 2, 47, 8, 10 ] A quarta instrução exclui os elementos de índice 2 até os elementos de índice menor que 4. delete sequencia[2..<4]; [ 0, 2, 10 ] Para demonstrar a próxima instrução é inserido o valor 2 à sequence insert 2 into sequencia; [ 0, 2, 10, 2 ] A sexta instrução exclui todos os valores 2 da sequece delete 2 from sequencia; [ 0, 10 ] A sétima instrução exclui todos os valores da sequência, mas não exclui a sequence em si, ou seja, a sequence agora está vazia. delete sequencia; [ ] É possível criar uma nova sequência a partir de uma já existente usando predicados (ANDERSON; ANDERSON, 2009, p. 59). A estrutura é a seguinte. sequenciafonte[variavel espressaologicarestritiva];, conforme o exemplo: def seq1 = [1..100]; def seq2 = seq[n (n*n) < 50]; // [1, 2, 3, 4, 5, 6, 7] Os elementos só são inseridos na nova sequence se forem compatíveis com a restrição, por exemplo, somente os números que quando multiplicados por eles mesmos forem menores que 50 serão adicionados à nova sequence Características especiais Binding: Uma das técnicas mais poderosas de JavaFX (ANDERSON; ANDERSON, 2009, p. 31) é o recurso de Binding, numa tradução livre, vinculação. Através da palavra-chave bind podemos vincular uma variável a uma outra variável ou a uma expressão ou função. Quando você atualiza algum valor da expressão que foi vinculada, o valor do objeto dependente é atualizado:

38 37 Quadro 13: Uso do bind No Quadro 13 cria-se as variáveis altura e largura, e uma constante área que torna-se vinculada ao resultado da expressão altura * largura pois antes da atribuição é usada a palavra-chave bind. Toda vez que um dos valores da expressão mudar a constante def é atualizada. Ao imprimir o conteúdo de área logo após a primeira atribuição temos com resultado 12.0, após atribuirmos o valor de 2.5 à variável largura, a variável área é atualizada de forma automática e transparente, então o valor da área agora é 7.5, atualizamos agora o valor da altura e área agora vale Se houver uma tentativa de manipular diretamente o valor de uma constante que usa bind, ocorre um erro de compilação, se área tivesse sido declarada como var e depois se tentasse atribuir um valor a ela ocorre um erro em tempo de execução pois não se pode atribuir valores diretamente a uma variável com bind, pois o compilador não consegue detectar em tempo de compilação as atribuições à variáveis com bind. (WEAVER et al., 2009, p.91). O bind também é usado com funções, se um dos parâmetros da função for alterado, a função é chamada novamente e o valor da variável vinculada é atualizado. No quadro 14 a variável hipotenusa tem a sua atribuição vinculada à função calculahipotenusa(), quando alteramos o valor de qualquer uma das variáveis que são passadas como argumento para a função calculahipotenusa(), a função é reavaliada, retornando um novo valor que então atualiza a variável hipotenusa. Quadro 14: Bind em funções

39 38 Os valores impressos são 5.0 após a atribuição inicial, e , quando alteramos o valor da base e 50.0 quando alteramos a altura. Quando se usa as palavras-chave with inverse após uma expressão de bind, toda vez que atualizarmos qualquer um dos lados da expressão, o outro lado será atualizado (Quadro 15), ao contrario de uma expressão com bind simples, a variável que usa bind with inverse tem que, necessariamente, ser declarada como var, já que ela é atualizável (ANDERSON; ANDERSON, 2009, p. 54). Quadro 15: Bind with inverse Expressões de Bloco: Conforme Anderson e Anderson (2009, p. 50), JavaFX é uma linguagem de expressão, o que significa que vários tipos de expressão em JavaFX retornam valores, que podem ser usados, por exemplo, em uma atribuição. Uma Expressão de Bloco nada mais é do que um conjunto de expressões delimitadas por colchetes ({ }). O tipo e o valor do retorno são o tipo e o valor da última expressão do bloco, se a última expressão do bloco não retornar valor, o bloco é do tipo Void, o bloco configura um novo escopo, variáveis declaradas dentro dele não são visíveis fora dele. O quadro 16 mostra um exemplo. Quadro 15: Expressões de Bloco Mesmo que a última expressão fosse atribuída à uma variável declarada na última linha, ou declarada anteriormente, o bloco retornaria o valor, pois a atribuição também é uma expressão em JavaFX. Expressão if: A expressão if também retorna valor, então pode-se associar o resultado de uma expressão if a uma variável, o retorno da expressão if é do mesmo tipo e valor do retorno da expressão then ou else, por exemplo: No quadro 17 a variável emaior recebe o retorno da expressão if que é do tipo

40 39 String, a palavra-chave then é opcional e se houver mais que uma instrução por clausula, deve-se delimitá-las por chaves ({ }). Quadro 16: Expressão If Expressão for: A expressão for é usada para fazer alguma ação um determinado numero de vezes. Pode-se usá-la assim, como no quadro 18: A expressão for acima chama o método facaalgo() cinco vezes, a variável i não precisa ser declarada, e em cada iteração, ela recebe um item da sequence que vem após a clausula in, que neste caso é uma sequence de um a cinco. Quadro 17: Expressão for Como uma expressão for retorna uma sequence, então é perfeitamente possível popular uma sequence como mostrado no Quadro 19: Quadro 18: Expressão For criando uma sequence Primeiro é criada uma sequence com três objetos da Classe Pessoa. Na expressão for, é declarada uma variável i que itera sobre uma sequence de 0 ao número de elementos da sequence pessoas menos um, no corpo do for, acessamos os elemento da sequence através de seu índice e concatenamos o valor da propriedades nome e sobrenome. A cada iteração este valor é adicionado a uma sequence nova, que é atribuída à variável nomesdaspessoas, o resultado do comando println() é uma sequence com nome e sobrenome concatenados: [ João da Silva, Maria de Oliveira, José Almeida ]. No quadro 19 é mostrada a expressão for na sintaxe JavaFX, mas sua

41 40 abordagem é de Java, uma abordagem de linguagem de Script é a mais indicada, portanto a melhor forma seria usar o for como no Quadro 20, abaixo. Quadro 19: Abordagem JavaFX para for Na expressão for é declarada uma variável de nome pessoa que a cada iteração recebe o objeto correspondente a esta iteração da sequence pessoas, dentro do corpo da expressão pode-se acessar propriedades deste objeto simplesmente referenciando a variável pessoa, então concatena-se o valor das propriedades nome e sobrenome. É possível ter mais de uma clausula in em uma expressão for, separando elas por vírgula (Quadro 21). Quando isto ocorre, a iteração ocorre como se fossem duas instruções for aninhadas, a variável da clausula mais a direita itera mais rapidamente. Quadro 20: Usando for com duas clausulas in O resultado do comando println é [ A1, A2, A3, B1, B2, B3, C1, C2, C3 ], ou seja, primeiro é feita a iteração de colunas, e depois de linhas. A expressão for permite o uso de clausulas where, que restringe alguns elementos da sequence da clausula in como vê-se no Quadro 22. Quadro 21: Clausula where em expressão for

42 41 O resultado da função println() é: Carlos aprovado com média 9.25 Morgana aprovado com média 7.75 Rebeca aprovado com média 7.75 Expressões while: Expressões while não retornam valor, elas atuam e tem sintaxe exatamente como no Java, palavra-chave while, seguida de uma expressão booleana entre parênteses e um bloco para ser executado enquanto a condição retornar true. Funções: Funções em JavaFX são criadas pela palavra-chave function, seguida do nome da função, e de um par de parênteses que delimitam os parâmetros que porventura existam, e por último, um bloco delimitado por chaves, como no Quadro 23. Quadro 22: criando funções em JavaFX Pode-se perceber nos três exemplos do quadro 23, como a Engine Inference pode agilizar o desenvolvimento, repare que no segundo exemplo os tipos do retorno e dos parâmetros, são inferidos, no terceiro exemplo a palavra-chave return faz o retorno de uma String. As funções também podem ser atribuídas à uma variável, o tipo da variável será a assinatura da função, como se percebe no quadro 24. Quadro 23: Função atribuída a uma variável Há duas maneiras de Vincular uma variável a uma função, através do uso da palavra-chave bind antes da chamada da função e da palavra-chave bound na criação da função. Funções com bind só serão reavaliadas se um dos parâmetros for

43 42 alterado, se é necessário reavaliar alguma função quando algum valor usado por ela, que não é passado como parâmetro for alterado, a função deve ser bound. Quadro 24: Funções Bound No quadro 25 são criadas duas funções, uma função normal e outra função com a palavra-chave bound, os parâmetros e o corpo das funções são iguais. Quando uma função é bound e uma variável é vinculada a esta função através do bind, a função é reavaliada quando há mudança em qualquer variável que faça parte da dependência da função, ou seja, que seja necessária para a função, sendo ela um parâmetro, ou não. O que é impresso pelo código do quadro 25 segue abaixo. Repare que nos últimos resultados, quando houve alteração em c, que não é parâmetro da função, é somente uma dependência de seu corpo, somente a função com bound foi reavaliada. valores iniciais a alterada c alterada

44 43 Modificadores de acesso: JavaFX tem modificadores de acesso diferentes de Java. Na Tabela 1 há uma lista dos modificadores primários, que são válidos para classes, funções, variáveis de script e variáveis de instancia de classe: Tabela 1 Modificadores de acesso primários Modificadores de acesso Primários (sem modificador de acesso) package protected public Fonte: (ANDERSON; ANDERSON, 2009, p. 89) script-private acessível somente dentro do script em que foi declarado (padrão). Pode ser lido e escrito. Acessível dentro do package em que foi declarado. Pode ser lido e escrito. Acessível às subclasses da classe em que foi declarado. Pode ser lido e escrito. Acessível de qualquer lugar. Pode ser lido e escrito. Como percebe-se, JavaFX não tem o modificador private, porém o modificador padrão é script-private, o que o torna acessível somente dentro do script em que foi declarado. Na tabela 2 estão listados os modificadores de acesso que são aplicáveis à variáveis. Pode-se usar package e protected juntamente com public-init e public-read para garantir maior controle sobre as permissões de escrita. Tabela 2 Modificadores de acesso de variáveis. Modificadores de acesso de variáveis public-read Só pode ser escrito dentro do próprio script, acessos externos tem permissão de leitura. public-init Dentro do script é possível ler e escrever a qualquer tempo. Fora do script, pode ser inicializado através de objeto-literal, após a inicialização, pode somente ser lido. protected Estende a permissão de escrita às subclasses. public Estende a permissão de escrita a componentes no mesmo pacote. Fonte: (ANDERSON; ANDERSON, 2009, p. 89) Triggers: Segundo Weaver e outros (2009, p.215) as triggers são uma parte opcional de uma declaração de variável. Ela é caracterizada pelo uso das palavraschave on replace seguido de um bloco de código a ser executado sempre que a

45 44 variável mude. No quadro 25 vemos um exemplo da implementação de uma trigger que monitora os valores de uma variável, porém uma trigger de uma variável pode também alterar outra variável, desde que tenha permissão de escrita para isso. Quadro 25: Trigger A saída destes comandos é esta: a variável triggered recebeu o valor 123. a variável triggered recebeu o valor -5. a variável triggered só pode conter valores entre 0 e 255, alterando o valor de -5 para 0 a variável triggered recebeu o valor 0. a variável triggered recebeu o valor 455. a variável triggered só pode conter valores entre 0 e 255, alterando o valor de 455 para 255 a variável triggered recebeu o valor 255. Percebe-se que a trigger é disparada já na inicialização da variável, já que todo tipo primitivo de JavaFX tem um valor default, a inicialização também é uma alteração de valor. Então a variável recebe o valor de -5, imprime a mensagem de mudança de valor e a mensagem de valor não aceito e muda o valor, o que repete a trigger, que imprime a mensagem de mudança de valor. Event Handlers: Os Nodes de JavaFX contém variáveis que armazenam funções que são chamadas quando determinado evento acontece, exemplos de event handlers são: onmousepressed, onkeytyped, onmouseentered.

46 45 3 DESENVOLVIMENTO DA APLICAÇÃO Como já mencionado, o stage é o principal container de JavaFX, e o scene armazena a parte gráfica da aplicação, na Fotografia 9, vemos a interface da aplicação, então analisaremos como ela foi desenhada. 1 2 Fotografia 9: Aplicação O atributo title de Stage é o título que aparecerá na Barra de títulos, height é a altura contando as decorações (bordas e barra de títulos), e width é a largura contando as decorações. O atributo scene recebe um objeto do tipo Scene cujo atributo content é uma sequence de Nodes como demonstrado no quadro 27. Quadro 26: Definição do Stage

47 CLASSE MAIN Começa-se a tela desenhando o fundo dela, através de um objeto Rectangle, de cor preta e tamanho variável acompanhando o tamanho da scene, conforme vemos no quadro 28. Quadro 27: Objeto Rectangle Analisando o quadro 28 percebe-se que este Rectangle foi atribuído a uma variável de nome Rectangle para posterior manipulação, altura e largura são atribuídas através de uma expressão bind que vincula as dimensões do Rectangle às dimensões da scene, o atributo fill (Preenchimento) recebe um Objeto javafx.scene.paint.color, e o atributo effect recebe um Objeto de javafx.scene.effect.lighting, que simula o efeito de uma luz sendo direcionada ao objeto. A renderização do scene ocorre na ordem em que é declarado (WEAVER et al., 2009, p. 253). É como se fossem colocados uns Retângulos sobre os outros, ou seja, o primeiro Rectangle declarado ficará em baixo dos outros. O Próximo Rectangle serve para aplicar um efeito de gradiente e é visto no quadro 29. A posição x é vinculada à posição x do Rectangle fundo, assim como a posição y, a altura (dividida por dois já que o gradiente só ocupa metade do tamanho da tela) e a largura, o que torna o gradiente flexível, acompanhando as mudanças de tamanho do scene, já que o tamanho dele é vinculado ao Rectangle fundo, que por sua vez é vinculado ao scene. O gradiente é composto de Stops que são posições relativas onde determinada cor está, JavaFX interpola o intervalo para fazer a transição entre as cores de um stop e outro.

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Iniciação à Informática

Iniciação à Informática Meu computador e Windows Explorer Justificativa Toda informação ou dado trabalhado no computador, quando armazenado em uma unidade de disco, transforma-se em um arquivo. Saber manipular os arquivos através

Leia mais

Procedimentos para Reinstalação do Sisloc

Procedimentos para Reinstalação do Sisloc Procedimentos para Reinstalação do Sisloc Sumário: 1. Informações Gerais... 3 2. Criação de backups importantes... 3 3. Reinstalação do Sisloc... 4 Passo a passo... 4 4. Instalação da base de dados Sisloc...

Leia mais

Dicas para usar melhor o Word 2007

Dicas para usar melhor o Word 2007 Dicas para usar melhor o Word 2007 Quem está acostumado (ou não) a trabalhar com o Word, não costuma ter todo o tempo do mundo disponível para descobrir as funcionalidades de versões recentemente lançadas.

Leia mais

Guia de Início Rápido

Guia de Início Rápido Guia de Início Rápido O Microsoft Word 2013 parece diferente das versões anteriores, por isso criamos este guia para ajudar você a minimizar a curva de aprendizado. Barra de Ferramentas de Acesso Rápido

Leia mais

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução:

Leia mais

Google Drive. Passos. Configurando o Google Drive

Google Drive. Passos. Configurando o Google Drive Google Drive um sistema de armazenagem de arquivos ligado à sua conta Google e acessível via Internet, desta forma você pode acessar seus arquivos a partir de qualquer dispositivo que tenha acesso à Internet.

Leia mais

EDITORA FERREIRA MP/RJ_EXERCÍCIOS 01

EDITORA FERREIRA MP/RJ_EXERCÍCIOS 01 EDITORA FERREIRA MP/RJ NCE EXERCÍCIOS 01 GABARITO COMENTADO 01 Ao se arrastar um arquivo da pasta C:\DADOS para a pasta D:\TEXTOS utilizando se o botão esquerdo do mouse no Windows Explorer: (A) o arquivo

Leia mais

Status. Barra de Título. Barra de Menu. Barra de. Ferramentas Padrão. Caixa de nomes. Barra de. Ferramentas de Formatação. Indicadores de Coluna

Status. Barra de Título. Barra de Menu. Barra de. Ferramentas Padrão. Caixa de nomes. Barra de. Ferramentas de Formatação. Indicadores de Coluna O que é uma planilha eletrônica? É um aplicativo que oferece recursos para manipular dados organizados em tabelas. A partir deles pode-se gerar gráficos facilitando a análise e interpretação dos dados

Leia mais

CURSO DE PROGRAMAÇÃO EM JAVA

CURSO DE PROGRAMAÇÃO EM JAVA CURSO DE PROGRAMAÇÃO EM JAVA Introdução para Iniciantes Prof. M.Sc. Daniel Calife Índice 1 - A programação e a Linguagem Java. 1.1 1.2 1.3 1.4 Linguagens de Programação Java JDK IDE 2 - Criando o primeiro

Leia mais

Manual AGENDA DE BACKUP

Manual AGENDA DE BACKUP Gemelo Backup Online DESKTOP Manual AGENDA DE BACKUP Realiza seus backups de maneira automática. Você só programa os dias e horas em que serão efetuados. A única coisa que você deve fazer é manter seu

Leia mais

Lógica de Programação

Lógica de Programação Lógica de Programação Unidade 4 Ambiente de desenvolvimento Java QI ESCOLAS E FACULDADES Curso Técnico em Informática SUMÁRIO A LINGUAGEM JAVA... 3 JVM, JRE, JDK... 3 BYTECODE... 3 PREPARANDO O AMBIENTE

Leia mais

Criando um script simples

Criando um script simples Criando um script simples As ferramentas de script Diferente de muitas linguagens de programação, você não precisará de quaisquer softwares especiais para criar scripts de JavaScript. A primeira coisa

Leia mais

Microsoft Office PowerPoint 2007

Microsoft Office PowerPoint 2007 INTRODUÇÃO AO MICROSOFT POWERPOINT 2007 O Microsoft Office PowerPoint 2007 é um programa destinado à criação de apresentação através de Slides. A apresentação é um conjunto de Sides que são exibidos em

Leia mais

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP AULA 4 VISÃO BÁSICA DE CLASSES EM PHP Antes de mais nada, vamos conhecer alguns conceitos, que serão importantes para o entendimento mais efetivos dos assuntos que trataremos durante a leitura desta apostila.

Leia mais

Desenvolvendo Websites com PHP

Desenvolvendo Websites com PHP Desenvolvendo Websites com PHP Aprenda a criar Websites dinâmicos e interativos com PHP e bancos de dados Juliano Niederauer 19 Capítulo 1 O que é o PHP? O PHP é uma das linguagens mais utilizadas na Web.

Leia mais

ANIMAÇÕES WEB AULA 2. conhecendo a interface do Adobe Flash. professor Luciano Roberto Rocha. www.lrocha.com

ANIMAÇÕES WEB AULA 2. conhecendo a interface do Adobe Flash. professor Luciano Roberto Rocha. www.lrocha.com ANIMAÇÕES WEB AULA 2 conhecendo a interface do Adobe Flash professor Luciano Roberto Rocha www.lrocha.com O layout do programa A barra de ferramentas (tools) Contém as ferramentas necessárias para desenhar,

Leia mais

Algoritmos e Programação Estruturada

Algoritmos e Programação Estruturada Algoritmos e Programação Estruturada Virgínia M. Cardoso Linguagem C Criada por Dennis M. Ritchie e Ken Thompson no Laboratório Bell em 1972. A Linguagem C foi baseada na Linguagem B criada por Thompson.

Leia mais

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas Linguagem de Programação JAVA Professora Michelle Nery Nomeclaturas Conteúdo Programático Nomeclaturas JDK JRE JEE JSE JME JVM Toolkits Swing AWT/SWT JDBC EJB JNI JSP Conteúdo Programático Nomenclatures

Leia mais

Android e Bancos de Dados

Android e Bancos de Dados (Usando o SQLite) Programação de Dispositivos Móveis Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do

Leia mais

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br Java Marcio de Carvalho Victorino www.dominandoti.eng.br 3. Considere as instruções Java abaixo: int cont1 = 3; int cont2 = 2; int cont3 = 1; cont1 += cont3++; cont1 -= --cont2; cont3 = cont2++; Após a

Leia mais

APOSTILA DE EXEMPLO. (Esta é só uma reprodução parcial do conteúdo)

APOSTILA DE EXEMPLO. (Esta é só uma reprodução parcial do conteúdo) APOSTILA DE EXEMPLO (Esta é só uma reprodução parcial do conteúdo) 1 Índice Aula 1 - Área de trabalho e personalizando o sistema... 3 A área de trabalho... 3 Partes da área de trabalho.... 4 O Menu Iniciar:...

Leia mais

O que há de novo. Audaces Idea

O que há de novo. Audaces Idea O que há de novo Audaces Idea Com o propósito de produzir tecnologia de ponta, o principal requisito da Política de Qualidade da Audaces é buscar a melhoria contínua de seus produtos e serviços. Inovadora

Leia mais

Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C#

Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C# Linguagem de Programação 3 Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C# Prof. Mauro Lopes 1-31 35 Objetivos Nesta aula iremos apresentar a tecnologia.net, o ambiente de desenvolvimento

Leia mais

CADERNO DE QUESTÕES WINDOWS 8

CADERNO DE QUESTÕES WINDOWS 8 CADERNO DE QUESTÕES WINDOWS 8 1) No sistema operacional Microsoft Windows 8, uma forma rápida de acessar o botão liga/desliga é através do atalho: a) Windows + A. b) ALT + C. c) Windows + I. d) CTRL +

Leia mais

Lidar com números e estatísticas não é fácil. Reunir esses números numa apresentação pode ser ainda mais complicado.

Lidar com números e estatísticas não é fácil. Reunir esses números numa apresentação pode ser ainda mais complicado. , ()! $ Lidar com números e estatísticas não é fácil. Reunir esses números numa apresentação pode ser ainda mais complicado. Uma estratégia muito utilizada para organizar visualmente informações numéricas

Leia mais

Prática 6 ActionScript

Prática 6 ActionScript Prática 6 ActionScript 1. Objetivos Se familiarizar com o ActionScript. Usar comandos e funções básicas. 2. Recursos Necessários Computador com o programa Macromedia Flash MX ou superior. 3. Conceitos

Leia mais

NetBeans. Conhecendo um pouco da IDE

NetBeans. Conhecendo um pouco da IDE NetBeans Conhecendo um pouco da IDE Professor: Edwar Saliba Júnior Sumário Apresentação:...1 Criando Um Novo Projeto de Software:...1 Depurando Um Código-fonte:...4 Entendendo o Código-fonte:...7 Dica

Leia mais

ANDRÉ APARECIDO DA SILVA APOSTILA BÁSICA SOBRE O POWERPOINT 2007

ANDRÉ APARECIDO DA SILVA APOSTILA BÁSICA SOBRE O POWERPOINT 2007 ANDRÉ APARECIDO DA SILVA APOSTILA BÁSICA SOBRE O POWERPOINT 2007 CURITIBA 2015 2 SUMÁRIO INTRODUÇÃO AO MICROSOFT POWERPOINT 2007... 3 JANELA PRINCIPAL... 3 1 - BOTÃO OFFICE... 4 2 - FERRAMENTAS DE ACESSO

Leia mais

Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR

Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR Novell Teaming - Guia de início rápido Novell Teaming 1.0 Julho de 2007 INTRODUÇÃO RÁPIDA www.novell.com Novell Teaming O termo Novell Teaming neste documento se aplica a todas as versões do Novell Teaming,

Leia mais

Manual do Usuário Android Neocontrol

Manual do Usuário Android Neocontrol Manual do Usuário Android Neocontrol Sumário 1.Licença e Direitos Autorais...3 2.Sobre o produto...4 3. Instalando, Atualizando e executando o Android Neocontrol em seu aparelho...5 3.1. Instalando o aplicativo...5

Leia mais

O Windows 7 é um sistema operacional desenvolvido pela Microsoft.

O Windows 7 é um sistema operacional desenvolvido pela Microsoft. Introdução ao Microsoft Windows 7 O Windows 7 é um sistema operacional desenvolvido pela Microsoft. Visualmente o Windows 7 possui uma interface muito intuitiva, facilitando a experiência individual do

Leia mais

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura UFPI CCN DIE Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura O projeto Desenvolver um compilador de um subconjunto básico da linguagem PORTUGOL.

Leia mais

2 echo "PHP e outros.";

2 echo PHP e outros.; PHP (Hypertext Preprocessor) Antes de qualquer coisa, precisamos entender o que é o PHP: O PHP(Hypertext Preprocessor) é uma linguagem interpretada gratuita, usada originalmente apenas para o desenvolvimento

Leia mais

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 ArpPrintServer Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 1 Sumário INTRODUÇÃO... 3 CARACTERÍSTICAS PRINCIPAIS DO SISTEMA... 3 REQUISITOS DE SISTEMA... 4 INSTALAÇÃO

Leia mais

1. Introdução pág.3 2. Apresentação do sistema Joomla! pág.4 3. Acessando a administração do site pág.4 4. Artigos 4.1. Criando um Artigo 4.2.

1. Introdução pág.3 2. Apresentação do sistema Joomla! pág.4 3. Acessando a administração do site pág.4 4. Artigos 4.1. Criando um Artigo 4.2. 1. Introdução pág.3 2. Apresentação do sistema Joomla! pág.4 3. Acessando a administração do site pág.4 4. Artigos 4.1. Criando um Artigo 4.2. Editando um Artigo 4.3. Excluindo um Artigo 4.4. Publicar

Leia mais

AMBIENTE DE PROGRAMAÇÃO PYTHON

AMBIENTE DE PROGRAMAÇÃO PYTHON Computadores e Programação Engª Biomédica Departamento de Física Faculdade de Ciências e Tecnologia da Universidade de Coimbra Ano Lectivo 2003/2004 FICHA 1 AMBIENTE DE PROGRAMAÇÃO PYTHON 1.1. Objectivos

Leia mais

Feature-Driven Development

Feature-Driven Development FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por

Leia mais

1 REQUISITOS BÁSICOS PARA INSTALAR O SMS PC REMOTO

1 REQUISITOS BÁSICOS PARA INSTALAR O SMS PC REMOTO 1 ÍNDICE 1 REQUISITOS BÁSICOS PARA INSTALAR O SMS PC REMOTO... 3 1.1 REQUISITOS BASICOS DE SOFTWARE... 3 1.2 REQUISITOS BASICOS DE HARDWARE... 3 2 EXECUTANDO O INSTALADOR... 3 2.1 PASSO 01... 3 2.2 PASSO

Leia mais

Introdução ao IDE Netbeans (Programação Java)

Introdução ao IDE Netbeans (Programação Java) Universidade Federal do ABC (UFABC) Disciplina: Processamento da Informação (BC-0505) Assunto: Java e Netbeans Introdução ao IDE Netbeans (Programação Java) Conteúdo 1. Introdução... 1 1.1. Programas necessários...

Leia mais

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO 10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO UMA DAS GRANDES FUNÇÕES DA TECNOLOGIA É A DE FACILITAR A VIDA DO HOMEM, SEJA NA VIDA PESSOAL OU CORPORATIVA. ATRAVÉS DELA, ELE CONSEGUE

Leia mais

Ano III - Número 16. Versão 4.6.4

Ano III - Número 16. Versão 4.6.4 Versão 4.6.4 Sexta-feira, 08 de fevereiro de 2008 ÍNDICE 3 4 EDITORIAL NOVAS FUNCIONALIDADES 4 12 13 14 15 16 Novo Cronograma 4 5 5 6 7 8 8 9 9 10 10 Edição Rápida do Cronograma Recurso de Arrastar e Soltar

Leia mais

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões Professor: Max Pereira http://paginas.unisul.br/max.pereira Ciência da Computação Primeiro Programa em Java public class OlaPessoal

Leia mais

Aula 2. Objetivos Conceitos; Instalação do Text Pad; Entendendo o código java do AloMundo1 Codificação do AloMundo2,AloMundo3 e AloMundo4.

Aula 2. Objetivos Conceitos; Instalação do Text Pad; Entendendo o código java do AloMundo1 Codificação do AloMundo2,AloMundo3 e AloMundo4. Aula 2 Objetivos Conceitos; Instalação do Text Pad; Entendendo o código java do AloMundo1 Codificação do AloMundo2,AloMundo3 e AloMundo4. Conceitos O software controla os computadores(freqüentemente conhecido

Leia mais

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

Leia mais

MQSeries Everyplace. Leia-me primeiro G517-7010-00

MQSeries Everyplace. Leia-me primeiro G517-7010-00 MQSeries Everyplace Leia-me primeiro G517-7010-00 MQSeries Everyplace Leia-me primeiro G517-7010-00 Primeira Edição (Junho de 2000) Esta edição se aplica ao MQSeries Everyplace Versão 1.0 e a todos os

Leia mais

Sumário 1. SOBRE O NFGoiana DESKTOP... 3 1.1. Apresentação... 3 1.2. Informações do sistema... 3 1.3. Acessando o NFGoiana Desktop... 3 1.4.

Sumário 1. SOBRE O NFGoiana DESKTOP... 3 1.1. Apresentação... 3 1.2. Informações do sistema... 3 1.3. Acessando o NFGoiana Desktop... 3 1.4. 1 Sumário 1. SOBRE O NFGoiana DESKTOP... 3 1.1. Apresentação... 3 1.2. Informações do sistema... 3 1.3. Acessando o NFGoiana Desktop... 3 1.4. Interface do sistema... 4 1.4.1. Janela Principal... 4 1.5.

Leia mais

Java Laboratório Aula 1. Divisões da Plataforma. Introdução a Plataforma Java. Visão geral da arquitetura da

Java Laboratório Aula 1. Divisões da Plataforma. Introdução a Plataforma Java. Visão geral da arquitetura da Java Laboratório Aula 1 Programação orientada a objetos Profa. Renata e Cristiane Introdução a Plataforma Java O que é Java? Tecnologia Linguagem de Programação Ambiente de Execução (JVM) Tudo isso é a

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação Introdução a Linguagem C Construções Básicas Programa em C #include int main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius = 30; farenheit = 9.0/5

Leia mais

Procedimentos para Instalação do Sisloc

Procedimentos para Instalação do Sisloc Procedimentos para Instalação do Sisloc Sumário: 1. Informações Gerais... 3 2. Instalação do Sisloc... 3 Passo a passo... 3 3. Instalação da base de dados Sisloc... 16 Passo a passo... 16 4. Instalação

Leia mais

Manual do Painel Administrativo

Manual do Painel Administrativo Manual do Painel Administrativo versão 1.0 Autores César A Miggiolaro Marcos J Lazarin Índice Índice... 2 Figuras... 3 Inicio... 5 Funcionalidades... 7 Analytics... 9 Cidades... 9 Conteúdo... 10 Referência...

Leia mais

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 Índice 1 - Objetivo 2 - Descrição do ambiente 2.1. Tecnologias utilizadas 2.2. Estrutura de pastas 2.3. Bibliotecas já incluídas 3 - Características gerais 4 - Criando

Leia mais

PROJETO INFORMÁTICA NA ESCOLA

PROJETO INFORMÁTICA NA ESCOLA EE Odilon Leite Ferraz PROJETO INFORMÁTICA NA ESCOLA AULA 1 APRESENTAÇÃO E INICIAÇÃO COM WINDOWS VISTA APRESENTAÇÃO E INICIAÇÃO COM WINDOWS VISTA Apresentação dos Estagiários Apresentação do Programa Acessa

Leia mais

SISTEMA DE BANCO DE IMAGENS MANUAL DE USO

SISTEMA DE BANCO DE IMAGENS MANUAL DE USO SISTEMA DE BANCO DE IMAGENS MANUAL DE USO Versão: BETA Última atualização: 24/06/2012 Índice O sistema de banco de imagens 03 Pesquisa de fotos 04 Pautas e eventos 08 Cadastro de fotos 09 Edição e indexação

Leia mais

Introdução ao Tableau Server 7.0

Introdução ao Tableau Server 7.0 Introdução ao Tableau Server 7.0 Bem-vindo ao Tableau Server; Este guia orientará você pelas etapas básicas de instalação e configuração do Tableau Server. Em seguida, usará alguns dados de exemplo para

Leia mais

Atualização deixa Java mais seguro, mas ainda é melhor desativar

Atualização deixa Java mais seguro, mas ainda é melhor desativar Atualização deixa Java mais seguro, mas ainda é melhor desativar seg, 21/01/13 por Altieres Rohr Segurança Digital Se você tem alguma dúvida sobre segurança da informação (antivírus, invasões, cibercrime,

Leia mais

TUTORIAL: MANTENDO O BANCO DE DADOS DE SEU SITE DENTRO DO DOMÍNIO DA USP USANDO O SSH!

TUTORIAL: MANTENDO O BANCO DE DADOS DE SEU SITE DENTRO DO DOMÍNIO DA USP USANDO O SSH! UNIVERSIDADE DE SÃO PAULO (USP) ESCOLA DE ARTES, CIÊNCIAS E HUMANIDADES (EACH) TUTORIAL: MANTENDO O BANCO DE DADOS DE SEU SITE DENTRO DO DOMÍNIO DA USP USANDO O SSH! Autoria e revisão por: PET Sistemas

Leia mais

Manual AGENDA DE BACKUP

Manual AGENDA DE BACKUP Gemelo Backup Online DESKTOP Manual AGENDA DE BACKUP Realiza seus backups de maneira automática. Você só programa os dias e horas em que serão efetuados. A única coisa que você deve fazer é manter seu

Leia mais

INSTALAÇÃO DO SISTEMA CONTROLGÁS

INSTALAÇÃO DO SISTEMA CONTROLGÁS INSTALAÇÃO DO SISTEMA CONTROLGÁS 1) Clique duas vezes no arquivo ControlGasSetup.exe. Será exibida a tela de boas vindas do instalador: 2) Clique em avançar e aparecerá a tela a seguir: Manual de Instalação

Leia mais

Polycom RealPresence Content Sharing Suite Guia rápido do usuário

Polycom RealPresence Content Sharing Suite Guia rápido do usuário Polycom RealPresence Content Sharing Suite Guia rápido do usuário Versão 1.2 3725-69877-001 Rev.A Novembro de 2013 Neste guia, você aprenderá a compartilhar e visualizar conteúdos durante uma conferência

Leia mais

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis 1. TIPOS DE DADOS Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Estas informações podem ser classificadas em dois tipos: As instruções, que

Leia mais

INTRODUÇÃO AO WINDOWS

INTRODUÇÃO AO WINDOWS INTRODUÇÃO AO WINDOWS Paulo José De Fazzio Júnior 1 Noções de Windows INICIANDO O WINDOWS...3 ÍCONES...4 BARRA DE TAREFAS...5 BOTÃO...5 ÁREA DE NOTIFICAÇÃO...5 BOTÃO INICIAR...6 INICIANDO PROGRAMAS...7

Leia mais

Fluxo de trabalho do Capture Pro Software: Indexação de OCR e separação de documentos de código de correção

Fluxo de trabalho do Capture Pro Software: Indexação de OCR e separação de documentos de código de correção Este procedimento corresponde ao fluxo de trabalho de Indexação de OCR com separação de código de correção no programa de treinamento do Capture Pro Software. As etapas do procedimento encontram-se na

Leia mais

OneDrive: saiba como usar a nuvem da Microsoft

OneDrive: saiba como usar a nuvem da Microsoft OneDrive: saiba como usar a nuvem da Microsoft O OneDrive é um serviço de armazenamento na nuvem da Microsoft que oferece a opção de guardar até 7 GB de arquivos grátis na rede. Ou seja, o usuário pode

Leia mais

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões Prof. MSc. Hugo Souza Se você precisar manter informações sobre seus usuários enquanto eles navegam pelo seu site, ou até quando eles saem

Leia mais

PHP Material de aula prof. Toninho (8º Ano)

PHP Material de aula prof. Toninho (8º Ano) Na aula anterior entendemos como se faz o acesso aos nossos arquivos PHP; Como construir um script em php. Nesta aula (3) vamos entender: Como roda o PHP Inserindo comentários Visualizando páginas a partir

Leia mais

O Primeiro Programa em Visual Studio.net

O Primeiro Programa em Visual Studio.net O Primeiro Programa em Visual Studio.net Já examinamos o primeiro programa escrito em C que servirá de ponto de partida para todos os demais exemplos e exercícios do curso. Agora, aprenderemos como utilizar

Leia mais

Introdução ao PHP. Prof. Késsia Marchi

Introdução ao PHP. Prof. Késsia Marchi Introdução ao PHP Prof. Késsia Marchi PHP Originalmente PHP era um assíncrono para Personal Home Page. De acordo com convenções para atribuições de nomes recursivas do GNU foi alterado para PHP Hypertext

Leia mais

2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10

2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10 1. TIPOS DE DADOS... 3 1.1 DEFINIÇÃO DE DADOS... 3 1.2 - DEFINIÇÃO DE VARIÁVEIS... 3 1.3 - VARIÁVEIS EM C... 3 1.3.1. NOME DAS VARIÁVEIS... 3 1.3.2 - TIPOS BÁSICOS... 3 1.3.3 DECLARAÇÃO DE VARIÁVEIS...

Leia mais

Guião de Introdução ao Eclipse IDE Índice

Guião de Introdução ao Eclipse IDE Índice Índice 1. Introdução... 2 1.1. O que é um ambiente de desenvolvimento (IDE)?... 2 1.2. Visão geral sobre o Eclipse IDE... 2 2. Iniciar o Eclipse... 3 2.1. Instalação... 3 2.2. Utilizar o Eclipse... 3 3.

Leia mais

Gerenciamento de Arquivos e Pastas. Professor: Jeferson Machado Cordini jmcordini@hotmail.com

Gerenciamento de Arquivos e Pastas. Professor: Jeferson Machado Cordini jmcordini@hotmail.com Gerenciamento de Arquivos e Pastas Professor: Jeferson Machado Cordini jmcordini@hotmail.com Arquivo Todo e qualquer software ou informação gravada em nosso computador será guardada em uma unidade de disco,

Leia mais

Manual do Visualizador NF e KEY BEST

Manual do Visualizador NF e KEY BEST Manual do Visualizador NF e KEY BEST Versão 1.0 Maio/2011 INDICE SOBRE O VISUALIZADOR...................................................... 02 RISCOS POSSÍVEIS PARA O EMITENTE DA NOTA FISCAL ELETRÔNICA.................

Leia mais

Instalando o J2SE 5.0 JDK no Windows 2000/XP

Instalando o J2SE 5.0 JDK no Windows 2000/XP Instalando o J2SE 5.0 JDK no Windows 2000/XP Fabricio Leonard Leopoldino Descreve o processo de download, instalação e configuração do J2SE 5.0 JDK, no Windows 2000 e no Windows XP. 1 - Introdução Para

Leia mais

Manual SAGe Versão 1.2 (a partir da versão 12.08.01)

Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Submissão de Relatórios Científicos Sumário Introdução... 2 Elaboração do Relatório Científico... 3 Submissão do Relatório Científico... 14 Operação

Leia mais

Nome N Série: Ferramentas

Nome N Série: Ferramentas Nome N Série: Ferramentas Competências: Identificar e utilizar técnicas de modelagem de dados; Habilidades: Utilizar ferramentas de apoio ao desenvolvimento de software; Bases Tecnológicas: Metodologias

Leia mais

Cadastramento de Computadores. Manual do Usuário

Cadastramento de Computadores. Manual do Usuário Cadastramento de Computadores Manual do Usuário Setembro 2008 ÍNDICE 1. APRESENTAÇÃO 1.1 Conhecendo a solução...03 Segurança pela identificação da máquina...03 2. ADERINDO À SOLUÇÃO e CADASTRANDO COMPUTADORES

Leia mais

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva 1. O que são Serviços Web (Web Services)? Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva A ideia central dos Web Services parte da antiga necessidade

Leia mais

Procedimentos para Instalação do SISLOC

Procedimentos para Instalação do SISLOC Procedimentos para Instalação do SISLOC Sumário 1. Informações Gerais...3 2. Instalação do SISLOC...3 Passo a passo...3 3. Instalação da Base de Dados SISLOC... 11 Passo a passo... 11 4. Instalação de

Leia mais

Nota de Aula: Utilização da IDE Code::Blocks

Nota de Aula: Utilização da IDE Code::Blocks INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO CAMPUS SÃO LUÍS MONTE CASTELO DEPARTAMENTO ACADÊMICO DE INFORMÁTICA SISTEMAS DE INFORMAÇÃO DISCIPLINA: LINGUAGEM DE PROGRAMAÇÃO I PROFESSOR:

Leia mais

Microsoft Office Excel 2007

Microsoft Office Excel 2007 1 Microsoft Office Excel 2007 O Excel é um programa dedicado a criação de planilhas de cálculos, além de fornecer gráficos, função de banco de dados e outros. 1. Layout do Excel 2007 O Microsoft Excel

Leia mais

QUESTÕES SOBRE WINDOWS 7

QUESTÕES SOBRE WINDOWS 7 Informática Windows 7 QUESTÕES SOBRE WINDOWS 7 1) Considerando a figura exibida acima, ao repousar o ponteiro do mouse sobre o ícone doword, aparecerão três miniaturas, representando arquivos desse programa

Leia mais

COMO USAR DOIS MONITORES NO WINDOWS 8

COMO USAR DOIS MONITORES NO WINDOWS 8 COMO USAR DOIS MONITORES NO WINDOWS 8 Trabalhar com dois monitores no Windows tem diversas utilidades. Dentre elas podemos destacar a possibilidade de visualizar mais itens ao mesmo tempo, exibir o conteúdo

Leia mais

CONVENÇÃO DE CÓDIGO JAVA

CONVENÇÃO DE CÓDIGO JAVA CONVENÇÃO DE CÓDIGO JAVA Eligiane Ceron - Abril de 2012 Versão 1.0 Conteúdo Considerações iniciais... 2 Introdução... 2 Extensão de arquivos... 2 Arquivos de código Java... 2 Comentários iniciais... 2

Leia mais

Pesquisa e organização de informação

Pesquisa e organização de informação Pesquisa e organização de informação Capítulo 3 A capacidade e a variedade de dispositivos de armazenamento que qualquer computador atual possui, tornam a pesquisa de informação um desafio cada vez maior

Leia mais

Java Como Programar, 8/E

Java Como Programar, 8/E Capítulo 2 Introdução aos aplicativos Java Java Como Programar, 8/E (C) 2010 Pearson Education, Inc. Todos os 2.1 Introdução Programação de aplicativo Java. Utilize as ferramentas do JDK para compilar

Leia mais

( TIAGO DOS SANTOS MENDES ) PROGRAMAÇÃO DISPOSITIVOS MOVEIS ANDROID STUDIO

( TIAGO DOS SANTOS MENDES ) PROGRAMAÇÃO DISPOSITIVOS MOVEIS ANDROID STUDIO Serviço Nacional de Aprendizagem Comercial E.E.P. Senac Pelotas Centro Histórico Programa Nacional de Acesso ao Ensino Técnico e Emprego Curso Técnico em Informática ( TIAGO DOS SANTOS MENDES ) PROGRAMAÇÃO

Leia mais

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Prof. MSc. Hugo Souza Iniciando nossas aulas sobre

Leia mais

Componentes da linguagem C++

Componentes da linguagem C++ Componentes da linguagem C++ C++ é uma linguagem de programação orientada a objetos (OO) que oferece suporte às características OO, além de permitir você realizar outras tarefas, similarmente a outras

Leia mais

Apostilas OBJETIVA Escrevente Técnico Judiciário TJ Tribunal de Justiça do Estado de São Paulo - Concurso Público 2015. Caderno 1.

Apostilas OBJETIVA Escrevente Técnico Judiciário TJ Tribunal de Justiça do Estado de São Paulo - Concurso Público 2015. Caderno 1. Caderno 1 Índice MS-Windows 7: conceito de pastas, diretórios, arquivos e atalhos, área de trabalho, área de transferência, manipulação de arquivos e pastas, uso dos menus, programas e aplicativos, interação

Leia mais

marcio@dsc.ufcg.edu.br priscillakmv@gmail.com

marcio@dsc.ufcg.edu.br priscillakmv@gmail.com DSC/CEEI/UFCG marcio@dsc.ufcg.edu.br priscillakmv@gmail.com 1 Realiza atividades com ênfase em Ensino, Pesquisa e Extensão (Ensino) 2 Configurando o projeto Adicionando código ao arquivo com o código-fonte

Leia mais

Manual de Conversão para PDF Envio de Arquivos ao Diário Oficial

Manual de Conversão para PDF Envio de Arquivos ao Diário Oficial Manual de Conversão para PDF Manual de Conversão para PDF 3 Conversão para PDF Microsoft Office 2003 Instalação da impressora PDF O pacote de aplicativo Office 2003 não possui nativamente o recurso de

Leia mais

CAPÍTULO 35 Como utilizar os componentes ColdFusion

CAPÍTULO 35 Como utilizar os componentes ColdFusion CAPÍTULO 35 Como utilizar os componentes ColdFusion Os componentes ColdFusion (CFC) permitem ao usuário encapsular lógicas de aplicação e de negócios (business logic) em unidades auto-controladas reutilizáveis.

Leia mais

&XUVRGH,QWURGXomRDR (GLWRUGH3ODQLOKDV([FHO

&XUVRGH,QWURGXomRDR (GLWRUGH3ODQLOKDV([FHO Universidade Federal de Viçosa Departamento de Informática &XUVRGH,QWURGXomRDR (GLWRUGH3ODQLOKDV([FHO Flaviano Aguiar Liziane Santos Soares Jugurta Lisboa Filho (Orientador) PROJETO UNESC@LA Setembro de

Leia mais

Introdução a listas - Windows SharePoint Services - Microsoft Office Online

Introdução a listas - Windows SharePoint Services - Microsoft Office Online Page 1 of 5 Windows SharePoint Services Introdução a listas Ocultar tudo Uma lista é um conjunto de informações que você compartilha com membros da equipe. Por exemplo, você pode criar uma folha de inscrição

Leia mais

ANDROID APPLICATION PROJECT

ANDROID APPLICATION PROJECT Criando um programa Abrindo o programa Eclipse, clique na opção [FILE], depois em [NEW], selecione a opção [PROJECT], uma janela de opção do tipo de projeto irá se abrir, escolha [ANDROID] logo depois

Leia mais

APOSTILA DE EXCEL 2007

APOSTILA DE EXCEL 2007 APOSTILA DE EXCEL 2007 1. Introdução Quando você cria uma planilha nova, a tela do computador é dividida em linhas e colunas, formando uma grade. A interseção de uma linha e de uma coluna é chamada de

Leia mais

Manual de Utilização Autorizador

Manual de Utilização Autorizador 1) Acessando: 1-1) Antes de iniciar a Implantação do GSS, lembre-se de verificar os componentes de software instalados no computador do prestador de serviço: a) Sistema Operacional: nosso treinamento está

Leia mais

Follow-Up Acompanhamento Eletrônico de Processos (versão 3.0) Manual do Sistema. 1. Como acessar o sistema Requisitos mínimos e compatibilidade

Follow-Up Acompanhamento Eletrônico de Processos (versão 3.0) Manual do Sistema. 1. Como acessar o sistema Requisitos mínimos e compatibilidade do Sistema Índice Página 1. Como acessar o sistema 1.1 Requisitos mínimos e compatibilidade 03 2. Como configurar o Sistema 2.1 Painel de Controle 2.2 Informando o nome da Comissária 2.3 Escolhendo a Cor

Leia mais

TUTORIAL DO ALUNO. Olá, bem vindo à plataforma de cursos a distância da Uniapae!!!

TUTORIAL DO ALUNO. Olá, bem vindo à plataforma de cursos a distância da Uniapae!!! TUTORIAL DO ALUNO Olá, bem vindo à plataforma de cursos a distância da Uniapae!!! O Moodle é a plataforma de ensino a distância utilizada pela Uniapae sendo a unidade de ensino para rápida capacitação

Leia mais

Introdução à Linguagem

Introdução à Linguagem Introdução à Linguagem Curso de Nivelamento do PPGMNE Janeiro / 2011 Juliano J. Scremin jjscremin@jjscremin.t5.com.br Um pouco de história Um pouco de história: Nascimento do Python Um pouco de história:

Leia mais