com JavaFX Scene Builder



Documentos relacionados
Toques de requinte para aplicações Desktop com JavaFX

MANUAL DA SECRETARIA

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Conectar diferentes pesquisas na internet por um menu

NOTA FISCAL DE SERVIÇO ELETRÔNICA (NFS-e) Manual de Utilização Envio de arquivos RPS. Versão 2.1

DELPHI 7 LINGUAGEM DE PROGRAMAÇÃO AMBIENTE CLIENTE SERVIDOR

Manual do Teclado de Satisfação Online WebOpinião

Movie Maker. Fazer download de vídeos no You Tube. Para publicar no You Tube. O Windows Movie Maker 2 torna fácil para qualquer pessoa

UNIVERSIDADE FEDERAL DO AMAPÁ PRÓ REITORIA DE ADMINISTRAÇÃO E PLANEJAMENTO DEPARTAMENTO DE INFORMÁTICA. Manual do Moodle- Sala virtual

Chamada Pública Procedimentos para utilização da Chamada Pública no sistema SMARam Versão 1.0

possibilidades e criatividade em Moodle minha sala de aula Atividades e Recursos Base de dados Parte II Configurações avançadas

Guia do Usuário. idocs Content Server v

1 Criando um aplicativo visual em Java

O Sistema foi inteiramente desenvolvido em PHP+Javascript com banco de dados em MySQL.

Projeto ECA na Escola - Plataforma de Educação à Distância

Para o PowerPoint, assim como para vários softwares de apresentação, uma apresentação é um conjunto de slides.

O QUE É A CENTRAL DE JOGOS?

UNIPAMPA Universidade Federal do Pampa. Núcleo de Tecnologia da Informação (NTI)

Manual de Rotinas para Usuários. Advogados da União. Procuradoria da União no Estado do Ceará PU/CE SAPIENS. Sistema da AGU de Inteligência Jurídica

Prefeitura Municipal de Sete Lagoas Secretaria de Planejamento Orçamento e Tecnologia Subsecretaria de Tecnologia da Informação

Tutorial para Palestrantes

Manual do Usuário ipedidos MILI S.A. - D.T.I.

Portaria Express 2.0

Windows Live Movie Maker

Guia de Acesso ao AVA. Ms. Eng. Claudio Ferreira de Carvalho

Exemplo 1. Um programa que cria uma instância de uma classe que herda da classe Frame

Para a utilização do WordPress são recomendadas as seguintes configurações:

ÍNDICE. Tela de Configuração Dados de Etiqueta Configuração da Impressora Configuração do Papel Itens para Inserção...

Configurar o Furbot no Eclipse

Sumário. 1. Instalando a Chave de Proteção Novas características da versão Instalando o PhotoFacil Álbum 4

Manual de Utilização do PDV Klavix

MANUAL MOODLE - PROFESSORES

Manual de Publicação Wordpress

Manual do Portal do Fornecedor. isupplier

Tutorial WEB Soluço es Click.

UTILIZANDO RECURSOS E ATIVIDADES NO MOODLE

Themis Serviços On Line - Publicações

Manual do usuário Neo Protocolo Free

Introdução ao icare 2

Tanto na visão semanal como diária você tem a sua disposição algumas opções uteis que facilitarão seu dia a dia.

F.A.Q. PORTAL DE COMPRAS SÃO JOSÉ DO RIO PRETO

O conteúdo deste documento é de propriedade intelectual exclusiva da GVDASA Sistemas e está sujeito a alterações sem aviso prévio.

WEBGIS Sistema Informativo Territorial

SECRETARIA DE ESTADO DA EDUCAÇÃO - SEED

Boletim Eletrônico de Recolhimento Manual do Sistema. Boletim Eletrônico de Recolhimento. Manual do Sistema

ORIENTAÇÕES PASSO A PASSO BDCS Banco de Dados de Cargos e Salários

Manual do Fórum do Meio Ambiente. Propõe instruções para primeiro acesso e funcionalidades básicas do sistema.

Manual do usuário Sistema de Ordem de Serviço HMV/OS 5.0

Manual de solicitação para envio de equipamento em garantia. Bosch Sistemas de Segurança

Figura 1: tela inicial do BlueControl COMO COLOCAR A SALA DE INFORMÁTICA EM FUNCIONAMENTO?

Freedom Software. Sistema de Representação. Freedom Software Sistema de Representação Página 1

NewAgent enterprise-brain

Portal de Compras. São José do Rio Preto

MANUAL MÓDULO CIELO QUERY COMMERCE (VERSÃO 1.6.1) QUERY COMMERCE

Q-Acadêmico. Módulo CIEE - Estágio. Revisão 01

Capítulo 1. Guia de Início Rápido. Você vai aprender a programar a sua primeira reunião em 5 passos fáceis.

Tutorial WEB CONTENT MANAGEMENT [WCM] Obtenha benefícios a partir das aplicações customizadas da ADMT.

2 Não possuo o institucional. Como devo proceder? Resposta: Dirija-se ao RH do câmpus e solicite a criação do seu institucional.

Inserção de Ponto de Entrada. Autoenge Módulo Automação Página 1

Projudi Módulo de Correição. Tutorial Juiz Corregedor

SISDEX SISTEMA DE CONTROLE DE DOCUMENTOS EXPEDIDOS

SISTEMA MEDLINK E-TISS PASSO-A-PASSO (USE JUNTO COM A VÍDEO AULA)

Site Fácil. Guia do Usuário. PROCERGS Divisão 5

MANUAL DE UTILIZAÇÃO. Produtos: Saúde Pró Faturamento Saúde Pró Upload. Versão:

Para o OpenOffice Impress, assim como para vários softwares de apresentação, uma apresentação é um conjunto de slides.

Introdução ao Android

PASSO A PASSO PARA UTILIZAÇÃO DO APLICATIVO

Implementando uma Classe e Criando Objetos a partir dela

Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans.

Sumário. 1. Propósito 1 2. Tabela de Ferragem 1 3. Criar Tabela de Ferragem 1 4. Conector de Ferragens 7

Manual MQS. Logo após colocar essas informações abrirá a página inicial do sistema:

APOSTILA ZELIO SOFT 2

Cobrança Bancária. Contas / Manutenção.

MANUAL DE UTILIZAÇÃO DO AMBIENTE EAD (Educação a Distância) ÍNDICE

F O R T A L E Z A MANUAL DO GUIA ON-LINE

CADERNOS DE INFORMÁTICA Nº 1. Fundamentos de Informática I - Word Sumário

E.E.E.B. Professor José Fernandes de Oliveira. Manual de Uso. Sistema Interno (Professores)

PORTAL WISSEN OPERADORA 2011 GUIA PRÁTICO OPERACIONAL. Portal Wissen

APOSTILA DE INFORMÁTICA MICROSOFT WORD 2012

Sumário INTRODUÇÃO 3 TELA DE APRESENTAÇÃO 3 DESENHANDO E TRANSFORMANDO 29 FERRAMENTA FORMA 29 PREENCHIMENTOS E CONTORNOS 36

Manual do Usuário PORTAL CNI CMS PUBLICA

Aliás Comunicação Tutorial WordPress. Belo Horizonte, Setembro de 2012.

SECRETARIA DE ESTADO DA EDUCAÇÃO DE SANTA CATARINA PONTO SECULLUM 4 SISTEMA DE CONTROLE DE PONTO MANUAL PARA A GERÊNCIA DE GESTÃO DE PESSOAS

Tutorial de Computação Introdução a Programação Gráfica em Java para MEC1100 v

Aula 01 Conceitos Iniciais sobre Excel 2010

AR PDV SOLUÇÕES AR CONSULTORIA EM INFORMÁTICA

Como criar um blog. Será aberta uma janela onde você deverá especificar o título do blog, o endereço do blog, e o modelo.

BR DOT COM SISPON: MANUAL DO USUÁRIO

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

Ministério da Agricultura, Pecuária e Abastecimento. SPARK - Comunicador Instantâneo MANUAL DO USUÁRIO

Vamos criar uma nova Página chamada Serviços. Clique em Adicionar Nova.

Manual do Usuário - ProJuris Web - Biblioteca Jurídica Página 1 de 20

Utilização do console WEB do DokNF-e. [Version 17/01/2013]

Manual das planilhas de Obras v2.5

Inicialmente, faça seu cadastro, depois, use seu CPF e sua Senha para fazer o Login e entrar no sistema quantas vezes quiser.

PORTAL MODELO. APOSTILA DE ATUALIZAÇÃO CONSELHOS REGIONAIS - CRAs. PASSO A PASSO PARA ATUALIZAÇÕES Conselhos Regionais de Administração

Para a melhor compreensão do OpenBiblio, veja os exemplos que a seguir: O cadastramento dos livros

MANUAL DE INSCRIÇÃO NAS LINHAS DE AÇÃO PROGRAMA DE INVESTIMENTO SPCINE E BRASIL DE TODAS AS TELAS

GUIA RÁPIDO - Bulletino Administrador -

Transcrição:

javafx_ Agilizando a Criação de Telas em JavaFX com JavaFX Scene Builder Conhecendo esta IDE que facilita e dinamiza a criação de telas em JavaFX. Este artigo apresenta o funcionamento e conceito do JavaFX Scene Builder, para facilitar a criação de telas em JavaFX, sem necessidade de template com código Java, e sim utilizando um arquivo XML. O leitor aprenderá a manipular esta IDE e a se comunicar com o código Java, através de MVC e Annotations, tornando o código limpo e extremamente eficaz. Bruno Henrique de Oliveira bruno.vky@live.com Cursando Análise e Desenvolvimento de Sistemas na FATEC São José dos Campos, programa com Java desde 2010, focado em desenvolvimento Android e JavaFX, possui conhecimento em desenvolvimento de jogos em Android com a framework AndEngine. 31 \

JavaFX está cada vez mais entrando na pauta dos O desenvolvedores de software e, mais especificamente, entre os desenvolvedores Java. Os recursos alcançados por esta plataforma demonstram um crescimento contínuo, a cada atualização, os criadores vêm com novidades relevantes. Porém, criar uma interface adequada no JavaFX pode ser tão complexo quanto às antigas aplicações Swing, devido a gama de componentes habilitados. No artigo Toques de Requinte em Aplicações Desktop com JavaFX, na edição 58, vimos a criação de uma simples tela de login utilizando JavaFX. Porém, criar formulários na mão, torna o processo cansativo e demorado, além de não obter recursos de programação capazes de reduzir linhas de código e aumentar a produtividade. Para solucionar este problema, é possível criar frames em um arquivo semelhante ao XML (chamado FXML), onde possui toda a interface de sua tela e todas as propriedades necessárias. Então, o código Java interpreta aquele layout montado neste arquivo e identifica todos os componentes, através de Annotation (). O trabalho do desenvolvedor será apenas criar a lógica de implementação de cada ação e códigos ao abrir a tela, como uma troca de texto em um campo. Este arquivo FXML é feito na IDE JavaFX Scene Builder. Esta IDE da Oracle pode ser baixada no link a seguir: http://www.oracle.com/technetwork/java/javafx/ downloads/index.html, juntamente com o download do JavaFX. Ela trabalha, além do FXML, com CSS, para recursos gráficos em componentes. Com visual simples e criação de telas com conceito drag-and- -drop, o JavaFX Scene Builder é uma ferramenta importante para o desenvolvedor JavaFX. Veremos na prática seu uso e a implementação dos conceitos MVC, facilitando a vida de desenvolvedores e designers. Conhecendo a interface da IDE Para demonstrarmos o funcionamento da IDE, utilizaremos um exemplo clássico: uma tela de login com campos de texto para login e senha, e dois botões para confirmação da operação e encerrar aplicação. Além disso, terá um link para uma página de cadastro de novo usuário. Estes dois tópicos (login e novo usuário) serão dois painéis embutidos na mesma tela, onde surgirão conforme necessidade do usuário. Com o JavaFX Scene Builder, esta tarefa se torna muito simples, pois os componentes se tornam fáceis de manusear. Primeiro, mostraremos a interface da IDE. Ao executá-la, veremos a tela principal (figura 1). Agora, desvendaremos cada parte desta interface, para tornar a vida do desenvolvedor iniciante em JavaFX ainda mais fácil. Library Nesta parte, veremos todos os componentes disponíveis no JavaFX. Para utilizá-los, basta que arrastemos o componente para dentro da tela, posicionando na coordenada X e Y desejada, podendo ser alterada posteriormente. Os componentes estão divididos por tipo: Containers, Controls, Popup Controls, Menu Content, Miscellaneous, Shapes e Charts, além de que cada Node possui um ícone que demonstra bem o resultado do mesmo. Na aba, existe um campo de texto para pesquisa dos componentes, caso precise de rapidez em sua busca. Basta digitar Figura 1. Interface do JavaFX Scene Builder. / 32

o início do nome do componente e uma filtragem é gerada para localização rápida do mesmo. Na figura 2, veremos a aba Library, conforme citado: Figura 2. Aba Library. Hierarchy Contém todos os componentes já adicionados à tela. Ao gerar uma nova tela, um AnchorPane é gerado automaticamente para representar seu painel principal, onde conterá os demais itens. Como o próprio nome diz, a tela possui um esquema de hierarquia, onde demonstra exatamente que cada Node se encontra dentro de um Parent, ou seja, de um componente pai. Na figura 3, veremos a representação de uma tela com um VBox dentro do AnchorPane principal, e três componentes dentro do VBox: ao WindowBuilder, do Eclipse para Swing, por exemplo. Seu trabalho será apenas arrastar os componentes à tela, como já dito anteriormente. Você pode organizar seu layout após os componentes serem inseridos na tela. Basta arrastar os componentes até a posição desejada. Existe também algumas facilidades no menu de contexto deste painel. Por exemplo, se tivéssemos colocado os três componentes que estão dentro do VBox anterior, mas sem o uso do VBox, para criarmos um novo Box com este conteúdo dentro, basta clicarmos com o botão direito do mouse, após selecionarmos os três componentes, irmos na opção Wrap in, e escolhermos o VBox. Pronto! Os três componentes foram inseridos em um novo VBox. E também se quiséssemos abrir o VBox para o tamanho completo da tela, basta clicarmos com o botão direito do mouse no VBox e selecionarmos a opção Fit to Parent. Agora, o componente encontra-se com o tamanho full do AnchorPane principal. Na figura 4, veremos um exemplo do Content Panel: Figura 4. Aba Content. Figura 3. Aba Hierarchy. Content Aqui ficará o conteúdo da tela, onde o desenvolvedor visualiza o resultado da mesma em runtime, conforme for colocando novos componentes nela. Tudo funciona em um sistema drag n drop, idêntico Inspector Este painel contém todas as propriedades de um componente selecionado. Esta aba possui três sub- -abas : Properties, Layout e Code. Aqui também possui um campo de texto para pesquisa de uma propriedade específica, para agilizar a busca.»» Properties: possui todas as propriedades gerais do componente, como valor do texto, ID, efeitos, fontes, opacidade, visibilidade, entre outros. Além disso, possui opções de criação de CSS para estilizar o componente (veremos esta opção em breve), opções extras e de transformação, como rotação, translação e escala. 33 \

»» Code: neste local, podem-se criar os métodos de ação (listeners) do componente referido, como ação de clique, de mouse, de tecla etc. Veremos que o JavaFX com FXML funciona com injeção de dependências para facilitar o código do desenvolvedor. Entenderemos esta facilidade em breve. Figura 5. Aba Properties.»» Layout: nesta sub-aba, veremos todas as opções de posição do componente, além de largura e altura preferida, mínima e máxima. Figura 7. Aba Code. Implementando o CSS Para utilizar CSS para estilizar sua aplicação, você pode criar seu arquivo.css em qualquer IDE, ou simplesmente em um bloco de notas. Após sua criação, basta irmos às abas superiores do JavaFX Scene Builder, clicar em Preview e depois em Preview a Style Sheet..., então, selecione o arquivo recém-criado. Após isto, volte à aba Properties, na parte de CSS, vá em Style Class e clique no botão +, então, selecione a classe do CSS responsável pelo efeito do seu componente. Você pode também criar o efeito CSS sem a necessidade de criar um arquivo próprio. Basta ir em Style, logo acima de Style Class e escreva o mesmo código CSS do arquivo, sem a necessidade de identificar um ID. Veja um exemplo na figura 8: Figura 6. Aba layout. Figura 8. Uso do Style. / 34

Criando a Tela de Login e Novo Usuário Agora, iniciaremos a criação da tela de login e novo usuário. Como citado anteriormente, criaremos dois painéis para isto, que serão visíveis conforme desejado pelo usuário. Começaremos pelo painel de login. Tela de Login Esta tela conterá campos de texto para login e senha, dois botões para entrar no sistema e sair da aplicação, além de um link para cadastro de novo usuário. Na base, usaremos Labels, TextFields e Buttons, para selecionar cada item, vá na Library Panel e digite no campo de pesquisa o nome do componente desejado, então clique e arraste o mesmo até a tela. Deixaremos livre para o desenvolvedor utilizar recursos avançados e efeitos gráficos adequados para esta tela. Na figura 9, veremos o resultado do nosso painel: Importante: estes componentes estão dentro de um AnchorPane, que por sua vez, está dentro do AnchorPane principal. Sem isto, ficará complicado variar a visibilidade dos painéis. Figura 9. Painel de Login. Figura 10. Tela de novo usuário. 35 \

Tela de Cadastro de Novo Usuário Para iniciarmos a criação deste painel, precisamos deixar invisível o painel de login, para facilitar a organização. Para isto, basta selecionarmos o AnchorPane do login, ir na aba Properties, e clicar no check da opção Visible. Neste outro painel, teremos campos de texto para nome completo, idade, login e senha, além de botões para salvar a ação e cancelar a operação, voltando ao painel de login. Novamente, deixaremos a criatividade para o desenvolvedor. O nosso exemplo ficou assim como a figura 10. Com os dois painéis já criados, devemos deixar invisível este segundo e voltar a tornar visível o painel de login, pois a exibição iniciará por ele. Mais um fator importante é dar nomes (ID) aos dois AnchorPane s: chamarei o painel de login de panelogin e o painel de novo usuário de panenovousuario. Para isto, vá na aba Properties, e no item fx:id, digite o nome do componente. Este item é de extrema importância, pois este nome será identificado em código, através de injeção de dependência. E, por fim, precisamos criar os métodos das ações dos botões, que também serão identificados em código. Vamos à aba Code, em cada Button, e dê um valor para o campo On Action. Este será o nome do método que será criado em código, então dê um nome fácil para identificação. Não esqueça de acrescentar o símbolo # antes do nome do método. Na figura 11, veremos um exemplo de ação do botão de entrar no sistema: Listagem 1. Classe Application. package application; import javafx.application.application; import javafx.fxml.fxmlloader; import javafx.scene.parent; import javafx.scene.scene; import javafx.stage.stage; public class LoginApp extends Application { public static void main(string[] args) { launch(args); @Override public void start(stage stage) throws Exception { Parent parent = FXMLLoader.load(getClass().getClassLoader().getResource( fxml/login.fxml )); Scene scene = new Scene(parent); stage.setscene(scene); stage.settitle( Login ); stage.show(); A única mudança deste código com a Application tradicional é o uso do Parent, sendo relacionado com o arquivo FXML criado (login.fxml). Utilizamos o método FXMLLoader.load(URL url) para este fim, indicando o caminho do arquivo como parâmetro. Caso tenha CSS na tela, necessita indicar na Scene, utilizando o seguinte código: Figura 11. Método onaction do botão btentrar. Após estas etapas, podemos colocar a mão no código. Veremos que o código no JavaFX, com o uso de FXML, se torna muito simples, pois trabalhamos com o padrão MVC, dividindo as funções das classes de forma coesa. É necessária a criação de duas classes: Application (View) e Initializable (Controller). Classe Application (View) Esta classe possui um código simples e enxuto, justamente focado para a exibição da tela. Para isto, criamos um Parent, baseado no arquivo FXML, criado no JavaFX Scene Builder, e então criaremos normalmente a Scene e o Stage, assim como a classe Application tradicional. scene.getstylesheets().add(getclass().getclassloader(). getresource( css/login.css ).toexternalform()); Agora, precisamos criar a classe Initializable (Controller), sem ela, esta tela ainda não rodará. Classe Initializable (Controller) Esta classe com certeza é novidade entre os desenvolvedores iniciantes em JavaFX. Aqui conterá todas as funcionalidades da tela indicada, em outras palavras, será o controlador da tela. Ela é implementada da interface Initializable e necessita da utilização do método initialize (URL url, Resource- Bundle bundle). Veremos que, nesta classe, usam-se conceitos de injeção de dependência e Annotations, para enxugar ainda mais o código. No próprio Java- FX Scene Builder, podemos ver o esqueleto da classe Controller. Vá na aba View e clique em Show Sample / 36

Controller Skeleton, então verá um campo de texto mostrando o esqueleto da classe. Mostraremos o código e depois explicaremos: Listagem 2. Classe Login Controller. package controller; import java.net.url; import java.util.resourcebundle; import javafx.event.actionevent; import javafx.fxml.fxml; import javafx.fxml.initializable; import javafx.scene.control.passwordfield; import javafx.scene.control.textfield; import javafx.scene.layout.anchorpane; public class LoginController implements Initializable { private AnchorPane panelogin, panenovousuario; private TextField txlogin, txnome, txidade, txloginusuario; private PasswordField txsenha, txsenhausuario; @Override public void initialize(url url, ResourceBundle bundle) { protected void btentraraction(actionevent evt) { // Logar no sistema protected void btsairaction(actionevent evt) { System.exit(0); protected void btcadastraraction(actionevent evt) { // Cadastrar novo usuário protected void btcancelaraction(actionevent evt) { // Cancelar operação panelogin.setvisible(true); panenovousuario.setvisible(false); protected void linkcliqueaquiaction(actionevent evt) { panelogin.setvisible(false); panenovousuario.setvisible(true); Primeiro, para criarmos os componentes, basta que declaremos os objetos e anotemos com a Annotation FXML (). Uma vez o controller identificado, irá buscar os componentes de mesmo nome que o declarado no arquivo FXML. Se o nome for diferente, dará um Exception em tempo de execução. Com isto, não há necessidade de instanciarmos os componentes e identificarmos na tela. O JavaFX fará isto por debaixo dos panos. Dentro do método initialize, ficarão os códigos de implementação inicial dos componentes, como uma troca de texto ao abrir a tela, por exemplo. No nosso exemplo, não necessitaremos de códigos ali dentro. E, por fim, temos a criação das ações (listeners) dos botões e do Hyperlink. Primeiro, devemos criar na aba Code, do JavaFX Scene Builder, os métodos adequados, então, indicamos a construção destes métodos (por padrão, é adequado indicá-los como protegidos protected), passando como parâmetro o tipo do evento (pode ser ActionEvent ações de clique, MouseEvent ações de mouse, KeyEvent ações de tecla, entre outros). Considerações finais Com a união dos artigos Toques de Requinte em Aplicações Desktop com JavaFX (edição 58) e este artigo podemos facilmente iniciar o desenvolvimento de aplicações Desktop de alta qualidade gráfica e organização de estrutura de códigos eficaz. Vimos que o JavaFX possui recursos não apenas visuais, mas estruturados, utilizando conceitos MVC e injeções de dependência, que reduz imensamente a ponte entre o desenvolvedor e a criação de aplicações avançadas. > Toques de Requinte em Aplicações Desktop com JavaFX, de Bruno Henrique de Oliveira, Revista MundoJ Ed. 58. > JavaFX Scene Builder User Guide - http://docs.oracle. com/javafx/scenebuilder/1/user_guide/jsbpub-user_guide. htm /referências 37 \