SlideShare a Scribd company logo
1 of 42
Download to read offline
Nécio de Lima Veras
necio.veras@ifce.edu.br
Introdução ao JavaFX
JavaFX is ….
The new UI toolkit for Java-based client applications running on desktop,
embedded, and mobile devices;
It is part of the JDK 8 and is provided as a pure Java API.
Resources:
Accelerated 2D and 3D graphics
UI controls, layouts, and charts
Audio and video support
Effects and animations
HTML5 support
Bindings, CSS, FXML, and more...
Porque JavaFX ?
Organização de código;
Manutenção rápida e descomplicada;
Qualidade gráfica;
Conceitos de CSS;
UI
Components
Shapes
Provê operações lógicas
para criar novos “shapes”
Existem 4 formas de
preenchimento de um “shape”
Os padrões de “stroke”
podem ser configurados
Controls
Controls
Dialogs and alerts
Existem outros, por exemplo,
para solicitar alguma informação
Layout panes
A classe ImageView é responsivo para exibir a
imagem na tela;
Audio and Image
A classe ImageView é responsivo para exibir a
imagem na tela;
A classe MediaView é usada para mostrar um vídeo ou
tocar um áudio. Formatos: MP3; AIFF, WAV, MPEG-4
Audio and Image
Charts
WebView
É possível embutir
qualquer conteúdo da
Web em sua aplicação;
Permite interagir
diretamente com o
conteúdo HTML e, por
exemplo, injetar
JavaScript ou manipular
o DOM.
FXML
Linguagem baseada em XML que define a estrutura e o
layout das interfaces com usuário JavaFX;
FXML
Linguagem baseada em XML que define a estrutura e o
layout das interfaces com usuário JavaFX;
SceneBuilder
Um editor WYSIWYG
https://www.oracle.com/technetwork/java/javase/downloads/sb2download-2177776.html
Visão geral
Scene
FXML
Control
View
Model
Application
Meu primeiro projeto
1. Crie um JavaProject na IDE de sua preferência;
2. Sugestão: crie 4 pacotes:
a. modelo
b. controle
c. visao
d. layout
Meu primeiro projeto
3. Usando o SceneBuilder crie sua cena (salve o arquivo
“.fxml” no pacote layout do seu projeto). 



Exemplo:
Meu primeiro projeto
4. Crie a classe OlaMundo no pacote visao 



Exemplo:

package visao;
import javafx.application.Application;
public class OlaMundo extends Application {
}
Meu primeiro projeto
Caso ocorra o erro (IDE Eclipse): 

Access restriction: The type 'Application' is not API (restriction on required library
‘/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/ext/
jfxrt.jar')
Faça:
1.Abra o Build Path do projeto
2.Na JRE edite as regras de acesso (Access rules)
3.Adicione a regra:
1.Resolution: Accessible
2.Rule pattern: javafx/**
4. De “ok's" e aplique a regra
package visao;
import java.io.IOException;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class OlaMundo extends Application {
public static void main(String[] args) throws IOException {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
FXMLLoader loader = new FXMLLoader(getClass().getResource("/layout/sceneOla.fxml"));
primaryStage.setScene(new Scene(loader.load()));
primaryStage.show();
}
}
A classe ficará assim:
Use o seu arquivo fxml
E a execução:
Meu primeiro projeto
5. Vamos agora adicionar os controles



Passo 1: Dê nomes aos componentes de interesse
Meu primeiro projeto
5. Vamos agora adicionar os controles



Passo 2: Crie a classe para ser o controle da visão
package controle;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
public class ControleSceneOla {
@FXML
private TextField nome;
}
Perceba esse
atributo. Ele está
“conectado" com a
interface.
Meu primeiro projeto
5. Vamos agora adicionar os controles



Passo 3: Associe o controle com a visão
package visao;
import java.io.IOException;
import controle.ControleSceneOla;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class OlaMundo extends Application {
public static void main(String[] args) throws IOException {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
FXMLLoader loader = new FXMLLoader(getClass().getResource("/layout/sceneOla.fxml"));
loader.setController(new ControleSceneOla());
primaryStage.setScene(new Scene(loader.load()));
primaryStage.show();
}
}
Meu primeiro projeto
6. Agora vamos adicionar os comportamentos que
desejamos



Passo 1: Definir os nomes das funções (no FXML)

package controle;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Alert;
import javafx.scene.control.TextField;
import javafx.scene.control.Alert.AlertType;
public class ControleSceneOla {
@FXML
private TextField nome;
public void dizerOla(ActionEvent event) {
Alert msg = new Alert(AlertType.INFORMATION);
msg.setContentText("Olá, " + nome.getText());
msg.show();
}
}
Meu primeiro projeto
6. Agora vamos adicionar os comportamentos que
desejamos



Passo 2: Codificar essa função na classe de controle

Meu primeiro projeto
Execução:
Agora é sua vez
Exercício: programe uma calculadora
com essa interface
Que tal um segundo projeto
com mais recursos?
Por exemplo com duas cenas alternado-se.
Passos:
1. Aplicação (classe que estende Application) exibe a cena 1 (não
esqueça de associar o controle da cena)
2. Na cena 1, ao clicar no botão para chamar a cena 2, o controle da
cena 1 faz:
a) Cria a nova cena a associa um objeto controle a ela
b) Esconde a cena atual
c) Mostra a cena 2 e espera ela ser fechada (showAndWait)
d) A cena 2, ao ser fechada, permite que a cena 1 seja novamente
exibida.
Que tal um segundo projeto
com mais recursos?
Por exemplo com duas cenas alternado-se.
Passos:
1. Aplicação (classe que estende Application) exibe a cena 1 (não esqueça de
associar o controle da cena)
2. Na cena 1, ao clicar no botão para chamar a cena 2, o controle da cena 1
faz:
a) Cria a nova cena a associa um objeto controle a ela
b) Esconde a cena atual
c) Mostra a cena 2 e espera ela ser fechada (showAndWait)
d) A cena 2, ao ser fechada, permite que a cena 1 seja novamente
exibida.
Dica: injete nos controladores a classe que guarda a cena (Stage)
Códigos - Application
package visao;
import java.io.IOException;
import controle.ControleJ1;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class Janelas extends Application {
public static void main(String[] args) throws IOException {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
FXMLLoader loader = new FXMLLoader(getClass().getResource("/layout/j1.fxml"));
loader.setController(new ControleJ1(primaryStage));
primaryStage.setScene(new Scene(loader.load()));
primaryStage.show();
}
}
Códigos - Controle 1
package controle;
import java.io.IOException;
import javafx.event.ActionEvent;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class ControleJ1 {
private Stage stage;
public ControleJ1(Stage st) {
stage = st;
}
public void ativaJ2(ActionEvent event) {
try {
FXMLLoader l = new FXMLLoader(getClass().getResource("/layout/j2.fxml"));
Stage stage = new Stage();
l.setController(new ControleJ2(stage));
Parent root = l.load();
Scene scene = new Scene(root);
stage.setScene(scene);
this.stage.hide();
stage.showAndWait();
this.stage.show();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Códigos - Controle 2
package controle;
import javafx.event.ActionEvent;
import javafx.stage.Stage;
public class ControleJ2 {
private Stage stage;
public ControleJ2(Stage s) {
stage = s;
}
public void ativaJ1(ActionEvent event) {
stage.close();
}
}
Visualizando
Visualizando
Agora é sua vez
Exercício: programe uma interface que use duas ou mais
cenas. Use um dos contextos abaixo:
a) Gerenciamento de contatos
b) Gerenciamento de plantas de um jardim
c) Gerenciamento de turmas de alunos
d) Autenticação para entrada em um sistema com uma
tela de login;
e) Use sua imaginação ou necessidade ….

More Related Content

What's hot

Capítulo 19 e 20 funções químicas ácidos, bases, sais e óxidos
Capítulo 19 e 20   funções químicas ácidos, bases, sais e óxidosCapítulo 19 e 20   funções químicas ácidos, bases, sais e óxidos
Capítulo 19 e 20 funções químicas ácidos, bases, sais e óxidosIgor Brant
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento webRodrigo Rodrigues
 
Metodologia e Linguagem de Programação - Aula 1
Metodologia e Linguagem de Programação - Aula 1Metodologia e Linguagem de Programação - Aula 1
Metodologia e Linguagem de Programação - Aula 1Thyago Maia
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação CGercélia Ramos
 
Fenol, enol e éter
Fenol, enol e éterFenol, enol e éter
Fenol, enol e éterKaires Braga
 
Reações orgânicas
Reações orgânicasReações orgânicas
Reações orgânicasparamore146
 
Poo1 aula 1 - java - história e introdução
Poo1   aula 1 - java -  história e introduçãoPoo1   aula 1 - java -  história e introdução
Poo1 aula 1 - java - história e introduçãoDenis Sobrenome
 
Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01   Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01 Léo Dias
 
Plano de aula - POO - IFS
Plano de aula - POO - IFSPlano de aula - POO - IFS
Plano de aula - POO - IFSDiego Armando
 
Funções Inorgânicas
Funções InorgânicasFunções Inorgânicas
Funções Inorgânicasloirissimavivi
 
Propriedade físicas e químicas dos compostos orgânicos
Propriedade físicas e químicas dos compostos orgânicosPropriedade físicas e químicas dos compostos orgânicos
Propriedade físicas e químicas dos compostos orgânicosFernanda Cordeiro
 
Material aula informática básica
Material aula informática básicaMaterial aula informática básica
Material aula informática básicaCarlos Melo
 

What's hot (20)

Capítulo 19 e 20 funções químicas ácidos, bases, sais e óxidos
Capítulo 19 e 20   funções químicas ácidos, bases, sais e óxidosCapítulo 19 e 20   funções químicas ácidos, bases, sais e óxidos
Capítulo 19 e 20 funções químicas ácidos, bases, sais e óxidos
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
 
Metodologia e Linguagem de Programação - Aula 1
Metodologia e Linguagem de Programação - Aula 1Metodologia e Linguagem de Programação - Aula 1
Metodologia e Linguagem de Programação - Aula 1
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação C
 
Aula 09 - introducao oo
Aula 09 - introducao ooAula 09 - introducao oo
Aula 09 - introducao oo
 
Fenol, enol e éter
Fenol, enol e éterFenol, enol e éter
Fenol, enol e éter
 
Proteinas
ProteinasProteinas
Proteinas
 
Reações orgânicas
Reações orgânicasReações orgânicas
Reações orgânicas
 
Poo1 aula 1 - java - história e introdução
Poo1   aula 1 - java -  história e introduçãoPoo1   aula 1 - java -  história e introdução
Poo1 aula 1 - java - história e introdução
 
JAVA - Orientação a Objetos
JAVA - Orientação a ObjetosJAVA - Orientação a Objetos
JAVA - Orientação a Objetos
 
Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01   Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01
 
Aula Digital de Química - Ácidos e Bases
Aula Digital de Química - Ácidos e BasesAula Digital de Química - Ácidos e Bases
Aula Digital de Química - Ácidos e Bases
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
Plano de aula - POO - IFS
Plano de aula - POO - IFSPlano de aula - POO - IFS
Plano de aula - POO - IFS
 
Funções Inorgânicas
Funções InorgânicasFunções Inorgânicas
Funções Inorgânicas
 
Reações químicas ppt
Reações químicas pptReações químicas ppt
Reações químicas ppt
 
Propriedade físicas e químicas dos compostos orgânicos
Propriedade físicas e químicas dos compostos orgânicosPropriedade físicas e químicas dos compostos orgânicos
Propriedade físicas e químicas dos compostos orgânicos
 
Carboidratos
CarboidratosCarboidratos
Carboidratos
 
Termoquimica
TermoquimicaTermoquimica
Termoquimica
 
Material aula informática básica
Material aula informática básicaMaterial aula informática básica
Material aula informática básica
 

Similar to Introdução ao JavaFX

JavaFX 2 - TDC 2012
JavaFX 2 - TDC 2012JavaFX 2 - TDC 2012
JavaFX 2 - TDC 2012jesuinoPower
 
Aplicacoes gráficas em Java
Aplicacoes gráficas em JavaAplicacoes gráficas em Java
Aplicacoes gráficas em JavaMarco Reis
 
Graphics Capabilities of Java Platform
Graphics Capabilities of Java PlatformGraphics Capabilities of Java Platform
Graphics Capabilities of Java PlatformMichel Alves
 
Introdução ao java fx e visage
Introdução ao java fx e visageIntrodução ao java fx e visage
Introdução ao java fx e visagejesuinoPower
 
Como construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsComo construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsDenis L Presciliano
 
Introdução ao JavaFX
Introdução ao JavaFXIntrodução ao JavaFX
Introdução ao JavaFXjesuinoPower
 
better faster stronger dagger
better faster stronger daggerbetter faster stronger dagger
better faster stronger daggertdc-globalcode
 
Testes em aplicações JEE: Montando sua infra de testes automatizados
Testes em aplicações JEE: Montando sua infra de testes automatizadosTestes em aplicações JEE: Montando sua infra de testes automatizados
Testes em aplicações JEE: Montando sua infra de testes automatizadosDiego Santos
 
Tutorial WebSocket em Java
Tutorial WebSocket em JavaTutorial WebSocket em Java
Tutorial WebSocket em Javalucascsoliveira
 
TDC 2016 - Animações no iOS
TDC 2016 - Animações no iOSTDC 2016 - Animações no iOS
TDC 2016 - Animações no iOSVictor Maraccini
 
Java Fx Guia De IntroduçãO
Java Fx Guia De IntroduçãOJava Fx Guia De IntroduçãO
Java Fx Guia De IntroduçãOdanielfc
 

Similar to Introdução ao JavaFX (20)

JavaFX 2
JavaFX 2JavaFX 2
JavaFX 2
 
JavaFX 2 - TDC 2012
JavaFX 2 - TDC 2012JavaFX 2 - TDC 2012
JavaFX 2 - TDC 2012
 
Java Seminar
Java SeminarJava Seminar
Java Seminar
 
Aplicacoes gráficas em Java
Aplicacoes gráficas em JavaAplicacoes gráficas em Java
Aplicacoes gráficas em Java
 
Graphics Capabilities of Java Platform
Graphics Capabilities of Java PlatformGraphics Capabilities of Java Platform
Graphics Capabilities of Java Platform
 
Introdução ao struts 2
Introdução ao struts 2Introdução ao struts 2
Introdução ao struts 2
 
Introdução ao java fx e visage
Introdução ao java fx e visageIntrodução ao java fx e visage
Introdução ao java fx e visage
 
Como construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsComo construir aplicações gráficas e applets
Como construir aplicações gráficas e applets
 
Tutorial java swing
Tutorial java swingTutorial java swing
Tutorial java swing
 
JavaFX 1.2
JavaFX 1.2JavaFX 1.2
JavaFX 1.2
 
JavaFX 1.2
JavaFX 1.2JavaFX 1.2
JavaFX 1.2
 
Introdução ao JavaFX
Introdução ao JavaFXIntrodução ao JavaFX
Introdução ao JavaFX
 
better faster stronger dagger
better faster stronger daggerbetter faster stronger dagger
better faster stronger dagger
 
Testes em aplicações JEE: Montando sua infra de testes automatizados
Testes em aplicações JEE: Montando sua infra de testes automatizadosTestes em aplicações JEE: Montando sua infra de testes automatizados
Testes em aplicações JEE: Montando sua infra de testes automatizados
 
Tutorial WebSocket em Java
Tutorial WebSocket em JavaTutorial WebSocket em Java
Tutorial WebSocket em Java
 
Minicurso Java
Minicurso JavaMinicurso Java
Minicurso Java
 
JavaFx - Introdução
JavaFx - IntroduçãoJavaFx - Introdução
JavaFx - Introdução
 
Java1
Java1Java1
Java1
 
TDC 2016 - Animações no iOS
TDC 2016 - Animações no iOSTDC 2016 - Animações no iOS
TDC 2016 - Animações no iOS
 
Java Fx Guia De IntroduçãO
Java Fx Guia De IntroduçãOJava Fx Guia De IntroduçãO
Java Fx Guia De IntroduçãO
 

More from Nécio de Lima Veras

Introdução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosIntrodução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosNécio de Lima Veras
 
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...Nécio de Lima Veras
 
Introdução à Engenharia de Software Orientada a Agentes com JaCaMo
Introdução à Engenharia de Software Orientada a Agentes com JaCaMoIntrodução à Engenharia de Software Orientada a Agentes com JaCaMo
Introdução à Engenharia de Software Orientada a Agentes com JaCaMoNécio de Lima Veras
 
Jason: Componentes personalizados
Jason: Componentes personalizados Jason: Componentes personalizados
Jason: Componentes personalizados Nécio de Lima Veras
 
Ambientes em Sistemas Multi-agentes
Ambientes em Sistemas Multi-agentesAmbientes em Sistemas Multi-agentes
Ambientes em Sistemas Multi-agentesNécio de Lima Veras
 
Arquiteturas concretas de agentes inteligentes - bdi agents
Arquiteturas concretas de agentes inteligentes - bdi agentsArquiteturas concretas de agentes inteligentes - bdi agents
Arquiteturas concretas de agentes inteligentes - bdi agentsNécio de Lima Veras
 
Especificações iniciais de agentes inteligentes
Especificações iniciais de agentes inteligentesEspecificações iniciais de agentes inteligentes
Especificações iniciais de agentes inteligentesNécio de Lima Veras
 
Processos iniciais do mapeamento OR
Processos iniciais do mapeamento ORProcessos iniciais do mapeamento OR
Processos iniciais do mapeamento ORNécio de Lima Veras
 
Introdução aos Sistemas operacionais
Introdução aos Sistemas operacionaisIntrodução aos Sistemas operacionais
Introdução aos Sistemas operacionaisNécio de Lima Veras
 

More from Nécio de Lima Veras (20)

Introdução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosIntrodução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmos
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Versionamento com git
Versionamento com gitVersionamento com git
Versionamento com git
 
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...
 
Introdução à Engenharia de Software Orientada a Agentes com JaCaMo
Introdução à Engenharia de Software Orientada a Agentes com JaCaMoIntrodução à Engenharia de Software Orientada a Agentes com JaCaMo
Introdução à Engenharia de Software Orientada a Agentes com JaCaMo
 
Jason: Componentes personalizados
Jason: Componentes personalizados Jason: Componentes personalizados
Jason: Componentes personalizados
 
Agentes inteligentes com jason
Agentes inteligentes com jasonAgentes inteligentes com jason
Agentes inteligentes com jason
 
Ambientes em Sistemas Multi-agentes
Ambientes em Sistemas Multi-agentesAmbientes em Sistemas Multi-agentes
Ambientes em Sistemas Multi-agentes
 
Arquiteturas concretas de agentes inteligentes - bdi agents
Arquiteturas concretas de agentes inteligentes - bdi agentsArquiteturas concretas de agentes inteligentes - bdi agents
Arquiteturas concretas de agentes inteligentes - bdi agents
 
Revisão de matemática
Revisão de matemáticaRevisão de matemática
Revisão de matemática
 
Especificações iniciais de agentes inteligentes
Especificações iniciais de agentes inteligentesEspecificações iniciais de agentes inteligentes
Especificações iniciais de agentes inteligentes
 
Notas sobre agentes inteligentes
Notas sobre agentes inteligentesNotas sobre agentes inteligentes
Notas sobre agentes inteligentes
 
Anotações do mapeamento OR
Anotações do mapeamento ORAnotações do mapeamento OR
Anotações do mapeamento OR
 
Hibernate-consultas
Hibernate-consultasHibernate-consultas
Hibernate-consultas
 
Mapeamento de herança OR
Mapeamento de herança ORMapeamento de herança OR
Mapeamento de herança OR
 
Relacionamentos do mapeamento OR
Relacionamentos do mapeamento ORRelacionamentos do mapeamento OR
Relacionamentos do mapeamento OR
 
Processos iniciais do mapeamento OR
Processos iniciais do mapeamento ORProcessos iniciais do mapeamento OR
Processos iniciais do mapeamento OR
 
Java swing
Java swingJava swing
Java swing
 
Introdução à linguagem UML
Introdução à linguagem UMLIntrodução à linguagem UML
Introdução à linguagem UML
 
Introdução aos Sistemas operacionais
Introdução aos Sistemas operacionaisIntrodução aos Sistemas operacionais
Introdução aos Sistemas operacionais
 

Recently uploaded

JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxJOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxTainTorres4
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorEdvanirCosta
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividadeMary Alvarenga
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)ElliotFerreira
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfHELENO FAVACHO
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteVanessaCavalcante37
 
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕESCOMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕESEduardaReis50
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdfLeloIurk1
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.Mary Alvarenga
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfmaurocesarpaesalmeid
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...licinioBorges
 
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇJaineCarolaineLima
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxLuizHenriquedeAlmeid6
 
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃOFASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃOAulasgravadas3
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 

Recently uploaded (20)

JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxJOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de Professor
 
Aula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIXAula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIX
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividade
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)
 
CINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULACINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULA
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕESCOMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
 
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃOFASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 

Introdução ao JavaFX

  • 1. Nécio de Lima Veras necio.veras@ifce.edu.br Introdução ao JavaFX
  • 2. JavaFX is …. The new UI toolkit for Java-based client applications running on desktop, embedded, and mobile devices; It is part of the JDK 8 and is provided as a pure Java API. Resources: Accelerated 2D and 3D graphics UI controls, layouts, and charts Audio and video support Effects and animations HTML5 support Bindings, CSS, FXML, and more...
  • 3. Porque JavaFX ? Organização de código; Manutenção rápida e descomplicada; Qualidade gráfica; Conceitos de CSS;
  • 6. Provê operações lógicas para criar novos “shapes”
  • 7. Existem 4 formas de preenchimento de um “shape”
  • 8. Os padrões de “stroke” podem ser configurados
  • 12. Existem outros, por exemplo, para solicitar alguma informação
  • 14. A classe ImageView é responsivo para exibir a imagem na tela; Audio and Image
  • 15. A classe ImageView é responsivo para exibir a imagem na tela; A classe MediaView é usada para mostrar um vídeo ou tocar um áudio. Formatos: MP3; AIFF, WAV, MPEG-4 Audio and Image
  • 17. WebView É possível embutir qualquer conteúdo da Web em sua aplicação; Permite interagir diretamente com o conteúdo HTML e, por exemplo, injetar JavaScript ou manipular o DOM.
  • 18. FXML Linguagem baseada em XML que define a estrutura e o layout das interfaces com usuário JavaFX;
  • 19. FXML Linguagem baseada em XML que define a estrutura e o layout das interfaces com usuário JavaFX;
  • 22. Meu primeiro projeto 1. Crie um JavaProject na IDE de sua preferência; 2. Sugestão: crie 4 pacotes: a. modelo b. controle c. visao d. layout
  • 23. Meu primeiro projeto 3. Usando o SceneBuilder crie sua cena (salve o arquivo “.fxml” no pacote layout do seu projeto). 
 
 Exemplo:
  • 24. Meu primeiro projeto 4. Crie a classe OlaMundo no pacote visao 
 
 Exemplo:
 package visao; import javafx.application.Application; public class OlaMundo extends Application { }
  • 25. Meu primeiro projeto Caso ocorra o erro (IDE Eclipse): 
 Access restriction: The type 'Application' is not API (restriction on required library ‘/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/ext/ jfxrt.jar') Faça: 1.Abra o Build Path do projeto 2.Na JRE edite as regras de acesso (Access rules) 3.Adicione a regra: 1.Resolution: Accessible 2.Rule pattern: javafx/** 4. De “ok's" e aplique a regra
  • 26. package visao; import java.io.IOException; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Scene; import javafx.stage.Stage; public class OlaMundo extends Application { public static void main(String[] args) throws IOException { launch(args); } @Override public void start(Stage primaryStage) throws Exception { FXMLLoader loader = new FXMLLoader(getClass().getResource("/layout/sceneOla.fxml")); primaryStage.setScene(new Scene(loader.load())); primaryStage.show(); } } A classe ficará assim: Use o seu arquivo fxml
  • 28. Meu primeiro projeto 5. Vamos agora adicionar os controles
 
 Passo 1: Dê nomes aos componentes de interesse
  • 29. Meu primeiro projeto 5. Vamos agora adicionar os controles
 
 Passo 2: Crie a classe para ser o controle da visão package controle; import javafx.fxml.FXML; import javafx.scene.control.Button; import javafx.scene.control.TextField; public class ControleSceneOla { @FXML private TextField nome; } Perceba esse atributo. Ele está “conectado" com a interface.
  • 30. Meu primeiro projeto 5. Vamos agora adicionar os controles
 
 Passo 3: Associe o controle com a visão package visao; import java.io.IOException; import controle.ControleSceneOla; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Scene; import javafx.stage.Stage; public class OlaMundo extends Application { public static void main(String[] args) throws IOException { launch(args); } @Override public void start(Stage primaryStage) throws Exception { FXMLLoader loader = new FXMLLoader(getClass().getResource("/layout/sceneOla.fxml")); loader.setController(new ControleSceneOla()); primaryStage.setScene(new Scene(loader.load())); primaryStage.show(); } }
  • 31. Meu primeiro projeto 6. Agora vamos adicionar os comportamentos que desejamos
 
 Passo 1: Definir os nomes das funções (no FXML)

  • 32. package controle; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.scene.control.Alert; import javafx.scene.control.TextField; import javafx.scene.control.Alert.AlertType; public class ControleSceneOla { @FXML private TextField nome; public void dizerOla(ActionEvent event) { Alert msg = new Alert(AlertType.INFORMATION); msg.setContentText("Olá, " + nome.getText()); msg.show(); } } Meu primeiro projeto 6. Agora vamos adicionar os comportamentos que desejamos
 
 Passo 2: Codificar essa função na classe de controle

  • 34. Agora é sua vez Exercício: programe uma calculadora com essa interface
  • 35. Que tal um segundo projeto com mais recursos? Por exemplo com duas cenas alternado-se. Passos: 1. Aplicação (classe que estende Application) exibe a cena 1 (não esqueça de associar o controle da cena) 2. Na cena 1, ao clicar no botão para chamar a cena 2, o controle da cena 1 faz: a) Cria a nova cena a associa um objeto controle a ela b) Esconde a cena atual c) Mostra a cena 2 e espera ela ser fechada (showAndWait) d) A cena 2, ao ser fechada, permite que a cena 1 seja novamente exibida.
  • 36. Que tal um segundo projeto com mais recursos? Por exemplo com duas cenas alternado-se. Passos: 1. Aplicação (classe que estende Application) exibe a cena 1 (não esqueça de associar o controle da cena) 2. Na cena 1, ao clicar no botão para chamar a cena 2, o controle da cena 1 faz: a) Cria a nova cena a associa um objeto controle a ela b) Esconde a cena atual c) Mostra a cena 2 e espera ela ser fechada (showAndWait) d) A cena 2, ao ser fechada, permite que a cena 1 seja novamente exibida. Dica: injete nos controladores a classe que guarda a cena (Stage)
  • 37. Códigos - Application package visao; import java.io.IOException; import controle.ControleJ1; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Scene; import javafx.stage.Stage; public class Janelas extends Application { public static void main(String[] args) throws IOException { launch(args); } @Override public void start(Stage primaryStage) throws Exception { FXMLLoader loader = new FXMLLoader(getClass().getResource("/layout/j1.fxml")); loader.setController(new ControleJ1(primaryStage)); primaryStage.setScene(new Scene(loader.load())); primaryStage.show(); } }
  • 38. Códigos - Controle 1 package controle; import java.io.IOException; import javafx.event.ActionEvent; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.stage.Stage; public class ControleJ1 { private Stage stage; public ControleJ1(Stage st) { stage = st; } public void ativaJ2(ActionEvent event) { try { FXMLLoader l = new FXMLLoader(getClass().getResource("/layout/j2.fxml")); Stage stage = new Stage(); l.setController(new ControleJ2(stage)); Parent root = l.load(); Scene scene = new Scene(root); stage.setScene(scene); this.stage.hide(); stage.showAndWait(); this.stage.show(); } catch (IOException e) { e.printStackTrace(); } } }
  • 39. Códigos - Controle 2 package controle; import javafx.event.ActionEvent; import javafx.stage.Stage; public class ControleJ2 { private Stage stage; public ControleJ2(Stage s) { stage = s; } public void ativaJ1(ActionEvent event) { stage.close(); } }
  • 42. Agora é sua vez Exercício: programe uma interface que use duas ou mais cenas. Use um dos contextos abaixo: a) Gerenciamento de contatos b) Gerenciamento de plantas de um jardim c) Gerenciamento de turmas de alunos d) Autenticação para entrada em um sistema com uma tela de login; e) Use sua imaginação ou necessidade ….