SlideShare uma empresa Scribd logo
1 de 42
Baixar para ler 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 ….

Mais conteúdo relacionado

Mais procurados

Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosDaniel Brandão
 
Java: Heranca e polimorfismo
Java: Heranca e polimorfismoJava: Heranca e polimorfismo
Java: Heranca e polimorfismoArthur Emanuel
 
Tratamento de exceções
Tratamento de exceçõesTratamento de exceções
Tratamento de exceçõesAlvaro Oliveira
 
Java orientação a objetos (variaveis de instancia e metodos)
Java   orientação a objetos (variaveis de instancia e metodos)Java   orientação a objetos (variaveis de instancia e metodos)
Java orientação a objetos (variaveis de instancia e metodos)Armando Daniel
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaDaniel Brandão
 
Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Bruno Grange
 
Aula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAislan Rafael
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetosCleyton Ferrari
 
Lambda Expressions in Java
Lambda Expressions in JavaLambda Expressions in Java
Lambda Expressions in JavaErhan Bagdemir
 
Java: Excecoes e Tratamento de Erros
Java: Excecoes e Tratamento de ErrosJava: Excecoes e Tratamento de Erros
Java: Excecoes e Tratamento de ErrosArthur Emanuel
 
Curso de Java: Introdução a lambda e Streams
Curso de Java: Introdução a lambda e StreamsCurso de Java: Introdução a lambda e Streams
Curso de Java: Introdução a lambda e StreamsHelder da Rocha
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVAMoises Omena
 

Mais procurados (20)

Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a Objetos
 
POO - 11 - Prática de Herança
POO - 11 - Prática de HerançaPOO - 11 - Prática de Herança
POO - 11 - Prática de Herança
 
Java: Heranca e polimorfismo
Java: Heranca e polimorfismoJava: Heranca e polimorfismo
Java: Heranca e polimorfismo
 
Tratamento de exceções
Tratamento de exceçõesTratamento de exceções
Tratamento de exceções
 
Java orientação a objetos (variaveis de instancia e metodos)
Java   orientação a objetos (variaveis de instancia e metodos)Java   orientação a objetos (variaveis de instancia e metodos)
Java orientação a objetos (variaveis de instancia e metodos)
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - Herança
 
JAVA - Herança
JAVA - HerançaJAVA - Herança
JAVA - Herança
 
Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)
 
Aula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e Programação
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 
Lambda Expressions in Java
Lambda Expressions in JavaLambda Expressions in Java
Lambda Expressions in Java
 
Java: Excecoes e Tratamento de Erros
Java: Excecoes e Tratamento de ErrosJava: Excecoes e Tratamento de Erros
Java: Excecoes e Tratamento de Erros
 
POO - 22 - Tratamento de Exceções em Java
POO - 22 - Tratamento de Exceções em JavaPOO - 22 - Tratamento de Exceções em Java
POO - 22 - Tratamento de Exceções em Java
 
Clean coding-practices
Clean coding-practicesClean coding-practices
Clean coding-practices
 
Curso de Java: Introdução a lambda e Streams
Curso de Java: Introdução a lambda e StreamsCurso de Java: Introdução a lambda e Streams
Curso de Java: Introdução a lambda e Streams
 
Aula javascript
Aula  javascriptAula  javascript
Aula javascript
 
Programando com Python
Programando com PythonProgramando com Python
Programando com Python
 
POO - 06 - Encapsulamento
POO - 06 - EncapsulamentoPOO - 06 - Encapsulamento
POO - 06 - Encapsulamento
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
 
Node.js e Express
Node.js e ExpressNode.js e Express
Node.js e Express
 

Semelhante a 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
 

Semelhante a 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
 

Mais de 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
 

Mais de 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
 

Último

Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmicolourivalcaburite
 
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...AnaAugustaLagesZuqui
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.denisecompasso2
 
APRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdf
APRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdfAPRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdf
APRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdfgerathird
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfcomercial400681
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do séculoBiblioteca UCS
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxMarcosLemes28
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...azulassessoria9
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxLuizHenriquedeAlmeid6
 
Artigo Científico - Estrutura e Formatação.ppt
Artigo Científico - Estrutura e Formatação.pptArtigo Científico - Estrutura e Formatação.ppt
Artigo Científico - Estrutura e Formatação.pptRogrioGonalves41
 
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!Centro Jacques Delors
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptssuser2b53fe
 
Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Cabiamar
 
Aula prática JOGO-Regencia-Verbal-e-Nominal.pdf
Aula prática JOGO-Regencia-Verbal-e-Nominal.pdfAula prática JOGO-Regencia-Verbal-e-Nominal.pdf
Aula prática JOGO-Regencia-Verbal-e-Nominal.pdfKarinaSouzaCorreiaAl
 
3 2 - termos-integrantes-da-oracao-.pptx
3 2 - termos-integrantes-da-oracao-.pptx3 2 - termos-integrantes-da-oracao-.pptx
3 2 - termos-integrantes-da-oracao-.pptxMarlene Cunhada
 
Texto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.pptTexto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.pptjricardo76
 
classe gramatical Substantivo apresentação..pptx
classe gramatical Substantivo apresentação..pptxclasse gramatical Substantivo apresentação..pptx
classe gramatical Substantivo apresentação..pptxLuciana Luciana
 
Conflitos entre: ISRAEL E PALESTINA.pdf
Conflitos entre:  ISRAEL E PALESTINA.pdfConflitos entre:  ISRAEL E PALESTINA.pdf
Conflitos entre: ISRAEL E PALESTINA.pdfjacquescardosodias
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticash5kpmr7w7
 
Cópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptx
Cópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptxCópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptx
Cópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptxSilvana Silva
 

Último (20)

Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.
 
APRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdf
APRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdfAPRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdf
APRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdf
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do século
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
Artigo Científico - Estrutura e Formatação.ppt
Artigo Científico - Estrutura e Formatação.pptArtigo Científico - Estrutura e Formatação.ppt
Artigo Científico - Estrutura e Formatação.ppt
 
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024
 
Aula prática JOGO-Regencia-Verbal-e-Nominal.pdf
Aula prática JOGO-Regencia-Verbal-e-Nominal.pdfAula prática JOGO-Regencia-Verbal-e-Nominal.pdf
Aula prática JOGO-Regencia-Verbal-e-Nominal.pdf
 
3 2 - termos-integrantes-da-oracao-.pptx
3 2 - termos-integrantes-da-oracao-.pptx3 2 - termos-integrantes-da-oracao-.pptx
3 2 - termos-integrantes-da-oracao-.pptx
 
Texto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.pptTexto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.ppt
 
classe gramatical Substantivo apresentação..pptx
classe gramatical Substantivo apresentação..pptxclasse gramatical Substantivo apresentação..pptx
classe gramatical Substantivo apresentação..pptx
 
Conflitos entre: ISRAEL E PALESTINA.pdf
Conflitos entre:  ISRAEL E PALESTINA.pdfConflitos entre:  ISRAEL E PALESTINA.pdf
Conflitos entre: ISRAEL E PALESTINA.pdf
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
 
Cópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptx
Cópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptxCópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptx
Cópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptx
 

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 ….