Transcript
Page 1: JavaFX Classe de Controle e Eventos - vpcamargo.com.br AAA JAVAFX - O A… · Um componente JavaFX possui propriedades como tamanho e altura, por exemplo, e também pode receber eventos

JavaFX

Classe de Controle e Eventos

Prof. Vicente Paulo de Camargo

Page 2: JavaFX Classe de Controle e Eventos - vpcamargo.com.br AAA JAVAFX - O A… · Um componente JavaFX possui propriedades como tamanho e altura, por exemplo, e também pode receber eventos

Classe de Controle e Eventos Labels são componentes que permitem auxiliar na compreensão de uma

interface gráfica, principalmente para indicar as identificações de elementos em uma interface gráfica

Um componente Label geralmente possui um texto de identificação

Nas aplicações com internacionalização, os labels devem ser bem identificados (como variáveis) para facilitar a alteração do idioma

As caixas de textos (TextField) permitem a entrada de dados pelo usuário

Uma caixa de texto permite conteúdos alfanuméricos

Para validar o conteúdo de uma caixa de texto é necessário utilizar de recursos específicos da plataforma ou de codificação específica

Os botões (Button) permitem efetuar certas ações quando forem clicados

A maioria dos componentes JavaFX permitem executar diversos eventos

Uma caixa de texto possui, por exemplo, os eventos receber foco, perder foco, receber a digitação de uma tecla e outros

Um botão pode receber evento de clicar do botão esquerdo ou direito, por exemplo

Page 3: JavaFX Classe de Controle e Eventos - vpcamargo.com.br AAA JAVAFX - O A… · Um componente JavaFX possui propriedades como tamanho e altura, por exemplo, e também pode receber eventos

Classe de Controle e Eventos

Um componente JavaFX possui propriedades como tamanho e

altura, por exemplo, e também pode receber eventos realizados

pelo usuário como click do mouse, perder o foco e outros

Um evento é, portanto, uma ação que o usuário efetua sobre algum

componente existente na interface gráfica

O JavaFX permite associar uma classe de controle com o

arquivo FXML de uma determinada interface gráfica (ou visão)

Essa classe de controle permite ao JavaFX tratar os eventos que

o usuário efetuará na interface gráfica sobre caixas de texto,

botões e outros elementos disponíveis em uma interface gráfica

Um evento corresponde a um método no código Java e esse

código Java deve, preferencialmente, estar na classe de controle

associada ao arquivo FXML da respectiva interface gráfica (ou

visão).

Page 4: JavaFX Classe de Controle e Eventos - vpcamargo.com.br AAA JAVAFX - O A… · Um componente JavaFX possui propriedades como tamanho e altura, por exemplo, e também pode receber eventos

Classe de Controle e Eventos

Com o projeto SceneBuilderExemplo aberto no Eclipse, crie o pacote controle.

Em seguida, crie a classe ViewControle.java no pacote controle

Abra o arquivo ViewFXML.fxml pelo Scene Builder

Acesse a aba Controller, abaixo da aba Hierarchy, no lado esquerdo do Scene Builder

E informe a expressão controle.ViewControle (pacote e nome da classe de controle)

Salve as mudanças no Scene Builder

Page 5: JavaFX Classe de Controle e Eventos - vpcamargo.com.br AAA JAVAFX - O A… · Um componente JavaFX possui propriedades como tamanho e altura, por exemplo, e também pode receber eventos

Classe de Controle e Eventos

Referência

da classe de

controle

Código sem a

classe de

controle

Código com a

classe de

controle

Page 6: JavaFX Classe de Controle e Eventos - vpcamargo.com.br AAA JAVAFX - O A… · Um componente JavaFX possui propriedades como tamanho e altura, por exemplo, e também pode receber eventos

Classe de Controle e Eventos

Com o Scene Builder ainda aberto com o arquivo ViewFXML.fxml

Acesse a opção O View / Show Sample Controller Skeleton

Será apresentada a janela Sample Sekeleton For ViewFXML.fxml Controller Class

Clique no botão Copy dessa Janela para copiar o seu conteúdo para a memória

Acesse o código da classe ViewControle.java, apagando todo o seu código e copiando o conteúdo da memória para essa classe

Salve a classe ViewControle.java

1

1

2

2

Page 7: JavaFX Classe de Controle e Eventos - vpcamargo.com.br AAA JAVAFX - O A… · Um componente JavaFX possui propriedades como tamanho e altura, por exemplo, e também pode receber eventos

Classe de Controle e Eventos

Agora a classe de controle ViewControle.java possui as referências

dos controles (agora objetos) criados pelo Scene Builder

Vamos criar um evento para o botão btnIncluir

Para isso, volte ao Scene Builder e selecione o botão btnIncluir

Acesse a aba Code, do lado direito do Scene Builder

Selecione a caixa de texto On Action e informe

btnIncluirOnAction

Esse será o nome do método quando esse botão for clicado

Criando Eventos

Aba Code

On Action

Selecionado

Page 8: JavaFX Classe de Controle e Eventos - vpcamargo.com.br AAA JAVAFX - O A… · Um componente JavaFX possui propriedades como tamanho e altura, por exemplo, e também pode receber eventos

Classe de Controle e Eventos

Salve o as mudanças no Scene Builder

Acesse novamente a opção View e copie apenas o trecho do novo

código gerado e cole-o no final da classe ViewControle.java

Ajuste o arquivo FXML no Eclipse

Criando Eventos

Copie esse trecho

e cole

Page 9: JavaFX Classe de Controle e Eventos - vpcamargo.com.br AAA JAVAFX - O A… · Um componente JavaFX possui propriedades como tamanho e altura, por exemplo, e também pode receber eventos

Classe de Controle e Eventos

Ajuste o erro na classe com ctrl+shift+o para importar a classe

necessária e selecione a opção indicada a seguir

Em seguida, ajuste o código do

Método btnIncluirOnAction

Observe as alterações

I

2

3

Page 10: JavaFX Classe de Controle e Eventos - vpcamargo.com.br AAA JAVAFX - O A… · Um componente JavaFX possui propriedades como tamanho e altura, por exemplo, e também pode receber eventos

Classe de Controle e Eventos

A classe de controle ViewControle utiliza a classe Alert para

apresentar uma caixa de dialogo de mensagens

Trecho para apresentação

de mensagens com a classe Alert

Page 11: JavaFX Classe de Controle e Eventos - vpcamargo.com.br AAA JAVAFX - O A… · Um componente JavaFX possui propriedades como tamanho e altura, por exemplo, e também pode receber eventos

Classe de Controle e Eventos

A classe de controle ViewControle utiliza a classe Alert para

apresentar uma caixa de dialogo de mensagens

title

headerText

Texto da mensagem

Page 12: JavaFX Classe de Controle e Eventos - vpcamargo.com.br AAA JAVAFX - O A… · Um componente JavaFX possui propriedades como tamanho e altura, por exemplo, e também pode receber eventos

Classe de Controle e Eventos

Para que se possa abrir a janela (ou visão) ViewFXML.fxml será

necessário alterar o código da classe principal da aplicação, a qual deverá

referenciar o arquivo ViewFXML.fxml para abrir a respectiva janela

Código atual

Novo código

Page 13: JavaFX Classe de Controle e Eventos - vpcamargo.com.br AAA JAVAFX - O A… · Um componente JavaFX possui propriedades como tamanho e altura, por exemplo, e também pode receber eventos

Classe de Controle e Eventos

Aplicação em tempo de execução

Após clique do mouse sobre o botão Incluir

Page 14: JavaFX Classe de Controle e Eventos - vpcamargo.com.br AAA JAVAFX - O A… · Um componente JavaFX possui propriedades como tamanho e altura, por exemplo, e também pode receber eventos

Classe de Controle e EventosOutras formas de expressar o evento do botão btnIncluir

Segunda forma:Dentro do método initialize

com expressão lambda:

btnIncluir.setOnAction((event) -> {

Alert alert;

alert = new Alert(AlertType.INFORMATION,"Você Clicou no Botão Incluir",ButtonType.OK);

alert.setTitle("Mensagem");

alert.setHeaderText("Informação");

alert.show();

});

sem expressão lambda:

btnIncluir.setOnAction(new EventHandler<ActionEvent>(){

@Override

public void handle(ActionEvent event){

//código

}

});

Page 15: JavaFX Classe de Controle e Eventos - vpcamargo.com.br AAA JAVAFX - O A… · Um componente JavaFX possui propriedades como tamanho e altura, por exemplo, e também pode receber eventos

Classe de Controle e EventosOutras formas de expressar o evento do botão btnIncluir

Terceira forma:

Fora do método initialize:

//Parte I

private void handleButtonAction(ActionEvent event) {

// o botão foi clicado, faz algo

}

Dentro do método initialize

//Parte II

btnIncluir.setOnAction(this::handleButtonAction);

Page 16: JavaFX Classe de Controle e Eventos - vpcamargo.com.br AAA JAVAFX - O A… · Um componente JavaFX possui propriedades como tamanho e altura, por exemplo, e também pode receber eventos

Classe de Controle e Eventos

Evento de foco com TextField

Devem ser codificados dentro de initialize através do método

focusedProperty()

nomeFuncionario.focusedProperty().addListener(new javafx.beans.value.ChangeListener<Boolean>() {

@Override

public void changed(ObservableValue<? extends Boolean> arg0, Boolean velhoValor, Boolean novoValor) {

if (!novoValor)

{

Alert alert;

alert = new Alert(AlertType.INFORMATION,"Desfocado",ButtonType.OK);

alert.setTitle("Mensagem");

alert.setHeaderText("Informação");

alert.show();

}

else

{

System.out.println(“FOCOU”);

}

}

});

Page 17: JavaFX Classe de Controle e Eventos - vpcamargo.com.br AAA JAVAFX - O A… · Um componente JavaFX possui propriedades como tamanho e altura, por exemplo, e também pode receber eventos

Exercício

Desenvolva uma aplicação orientada a objetos com o uso de MVC e

JavaFX, a qual deve permitir o cadastro pessoas, com nome e cpf (cuja

chave primária é inteira e incremental), em um banco de dados. Não

será permitido o cadastro de pessoas com o mesmo cpf e os nomes

devem ser atualizados no banco de dados em caixa alta. A aplicação

deve:

a)Apresentar uma tela de manutenção de dados de pessoas para

incluir, alterar e excluir pessoas

b)Para alterar ou excluir deve-se informar o código da pessoa para que

o sistema possa pesquisar os dados e preencher a tela de cadastro

para que o usuário possa efetuar a respectiva atualização

c)Deve-se utilizar botões para efetuar as respectivas ações de incluir,

alterar ou excluir

d)Utilizar uma classe para apresentar mensagens específicas de erro ou

de operação concluída

Page 18: JavaFX Classe de Controle e Eventos - vpcamargo.com.br AAA JAVAFX - O A… · Um componente JavaFX possui propriedades como tamanho e altura, por exemplo, e também pode receber eventos

F I M


Recommended