JavaFX Classe de Controle e Eventos - AAA JAVAFX - O Aآ  Um componente JavaFX possui propriedades como

  • View
    2

  • Download
    0

Embed Size (px)

Text of JavaFX Classe de Controle e Eventos - AAA JAVAFX - O Aآ  Um componente JavaFX possui propriedades...

  • JavaFX

    Classe de Controle e Eventos

    Prof. Vicente Paulo de Camargo

  • 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

  • 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).

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • Classe de Controle e Eventos

    Aplicação em tempo de execução

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

  • Classe de Controle e Eventos Outras 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(){

    @Override

    public void handle(ActionEvent event){

    //código

    }

    });

  • Classe de Controle e Eventos Outras 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);

  • 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() {

    @Override

    public void changed(ObservableValue

  • 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

  • F I M