javafx classe de controle e eventos · classe de controle e eventos crie o projeto javafx com o...
TRANSCRIPT
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 EventosCrie o projeto JavaFX com o nome SceneBuilderExemplo.
Com o projeto SceneBuilderExemplo aberto no Eclipse, crie os pacotes controle e view em src.
Crie a classe ViewControle.java no pacote controle
Crie o arquivo ViewFXML.fxml no pacote view
Na janela New digite
fxml e selecione
New FXML
Document e
selecione Next
Na próxima
janela
informe
ViewFXML
em Name e
Finish
O arquivo FXML ficará
salvo no pacote view
1
2
3
Classe de Controle e EventosAbra o arquivo ViewFXML.fxml pelo Scene Builder
A janela do SceneBuilder é apresentada com o arquivo ViewFXML.fxml
Classe de Controle e Eventos
Crie agora uma interface gráfica com o container Pane, localizado na aba
Containers
Insira um controle TextField e três controles Button
Esses controles se encontram na aba Controls do SceneBuilder
Observe a interface criada na figura a seguir:
Controle
TextField
Controles
Button
Observe o passo-a-passo para criar essa interface gráfica
Classe de Controle e EventosUsando Scene Builder passo a passo
Inserindo controles e conhecendo suas propriedades e eventos
Classe de Controle e EventosUsando Scene Builder passo a passo
Inserindo controles e conhecendo suas propriedades e eventos
Classe de Controle e EventosUsando Scene Builder passo a passo
Inserindo controles e conhecendo suas propriedades e eventos
Classe de Controle e EventosUsando Scene Builder passo a passo
Inserindo controles e conhecendo suas propriedades e eventos
Classe de Controle e EventosUsando Scene Builder passo a passo
Inserindo controles e conhecendo suas propriedades e eventos
Classe de Controle e EventosUsando Scene Builder passo a passo
Inserindo controles e conhecendo suas propriedades e eventos
Classe de Controle e EventosUsando Scene Builder passo a passo
Inserindo controles e conhecendo suas propriedades e eventos
Classe de Controle e EventosUsando Scene Builder passo a passo
Inserindo controles e conhecendo suas propriedades e eventos
Classe de Controle e EventosUsando Scene Builder passo a passo
Inserindo controles e conhecendo suas propriedades e eventos
Classe de Controle e EventosUsando Scene Builder passo a passo
Inserindo controles e conhecendo suas propriedades e eventos
Classe de Controle e EventosUsando Scene Builder passo a passo
Inserindo controles e conhecendo suas propriedades e eventos
Classe de Controle e EventosUsando Scene Builder passo a passo
Inserindo controles e conhecendo suas propriedades e eventos
Classe de Controle e EventosUsando Scene Builder passo a passo
Inserindo controles e conhecendo suas propriedades e eventos
Classe de Controle e EventosUsando Scene Builder passo a passo
Inserindo controles e conhecendo suas propriedades e eventos
Classe de Controle e EventosUsando Scene Builder passo a passo
Inserindo controles e conhecendo suas propriedades e eventos
Classe de Controle e EventosUsando Scene Builder passo a passo
Inserindo controles e conhecendo suas propriedades e eventos
Classe de Controle e EventosUsando Scene Builder passo a passo
Inserindo controles e conhecendo suas propriedades e eventos
Classe de Controle e EventosUsando Scene Builder passo a passo
Inserindo controles e conhecendo suas propriedades e eventos
Classe de Controle e EventosUsando Scene Builder passo a passo
Inserindo controles e conhecendo suas propriedades e eventos
Classe de Controle e EventosUsando Scene Builder passo a passo
Inserindo controles e conhecendo suas propriedades e eventos
Classe de Controle e EventosUsando Scene Builder passo a passo
Inserindo controles e conhecendo suas propriedades e eventos
Classe de Controle e EventosUsando Scene Builder passo a passo
Inserindo controles e conhecendo suas propriedades e eventos
Classe de Controle e EventosUsando Scene Builder passo a passo
Inserindo controles e conhecendo suas propriedades e eventos
Classe de Controle e EventosUsando Scene Builder passo a passo
Inserindo controles e conhecendo suas propriedades e eventos
Classe de Controle e EventosUsando Scene Builder passo a passo
Inserindo controles e conhecendo suas propriedades e eventos
Classe de Controle e EventosUsando Scene Builder passo a passo
Inserindo controles e conhecendo suas propriedades e eventos
Classe de Controle e EventosUsando Scene Builder passo a passo
Inserindo controles e conhecendo suas propriedades e eventos
Classe de Controle e Eventos
Com o projeto SceneBuilderExemplo aberto no Eclipse,
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
Isso faz com que
a aplicação
relacione o
arquivo fxml com
a classe de
controle
correspondente
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
Note os erros no fxml. Eles ocorrem porque a classe controle
não possui a referência dos elementos e dos seus respectivos
eventos
Classe de Controle e EventosPara eliminar os erros no fxml:
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 Skeleton 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
12
2
Classe de Controle e Eventos
Ajuste os erros clicando no x de um dos
erros e importe a biblioteca informada
ActionEvent(javafx.event)
O respectivo import pode também ser
efetuado com a combinação ctrl+shift+o
Classe de Controle e Eventos
Agora, tanto a classe de controle
quanto o arquivo fxml, não
possuem erros
Note os métodos correspondentes
aos eventos de cada botão. Assim,
por exemplo, se o botão
btnIncluir receber um clique do
mouse, o evento
btnIncluirOnAction será
chamado
Classe de Controle e Eventos
Em seguida, ajuste o código do
Método btnIncluirOnAction
Observe as alterações
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
Observe a caixa de dialogo Alert em tempo de execução.
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 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
}
});
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);
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”);
}
}
});
F I M