Buscar

PROGRAMAÇÃO ORIENTADA A OBJETOS Aula 05

Prévia do material em texto

- -1
PROGRAMAÇÃO ORIENTADA A OBJETOS
TRATAMENTO DE EVENTOS DE 
MANIPULAÇÃO DE TEXTOS
- -2
Olá!
Nesta aula, você irá:
1. Compreender a manipulação de eventos de texto, frequentemente relacionados à validação de caracteres
inseridos através do teclado.
2. Utilizar eventos de listas, tornando as interfaces gráficas mais intuitivas.
Tratamento de eventos em Java
Quase todos os componentes propagam eventos. Estes eventos devem ser tratados em algum ponto do código da
aplicação. Os eventos nunca são tratados no próprio componente (dado que não se tem acesso ao código do
componente). Para ligar o código do tratamento de eventos ao componente existem, no Java, um conjunto de
interfaces chamadas listeners. Um listener é uma interface que especifica os métodos que uma aplicação deve ter
para ser notificada da ocorrência de um determinado evento. Os componentes que geram eventos permitem que
sejam adicionados ou removidos listeners em qualquer altura.
Os Eventos Prontos
- -3
Aprendendo na prática
Vamos implementar um programa simples para preencher uma lista. Este programa utilizará uma lista de itens
para receber os elementos, um jtextfield que é o responsável pela entrada dos valores e pelos botões Coloca e
Retira, um para colocar o texto digitado na caixa de texto na lista e o outro para retirar os elementos
selecionados. Também colocamos um jLabel para apresentar as mensagens – jLabel2.
A colocação ou disposição dos componentes, utilizar um gerenciador de leiaute a sua escolha, dentre os vistos na
aula 2. Caso queira, utilize a estrutura de design do NetBeans.
A Interface TextListener
- -4
Eventos de texto são gerados quando um texto em um componente foi alterado de alguma forma. Este evento
funciona apenas com componentes textfields e textarea da biblioteca AWT.
Este tratamento é feito da seguinte forma:
• Adicionamos o TextListener no objeto texto, que é um TextField;
• Criamos o objeto que irá tratar este evento, instanciando um objeto TextListener para implementar o 
método de tratamento;
• Implementamos o método textValueChanged, que é o método de tratamento invocado.
Abaixo, o código pronto:
texto.addTextListener(new java.awt.event.TextListener() {
public void textValueChanged(TextEvent e) {
trataMudancaTexto(e);
}
});
private void trataMudancaTexto(TextEvent e) {
jLabel2.setText("Texto do texto Mudou!> ");
}
A Interface KeyListener
•
•
•
Fique ligado
É válido observar que podemos passar o evento para o método de tratamento. Neste nosso
exemplo, nada faremos com o evento, mas poderíamos usar este objeto para refinar a
programação ou controle.
- -5
Esta interface efetua o tratamento de eventos para teclas pressionadas. São disponibilizados três métodos de
tratamento para os diferentes comportamentos possíveis para o evento de apertar uma tecla. São eles:
Segue o código para o tratamento deste evento no nosso exemplo. Nesta alteração, foi adicionado um listener
para o campo jTextField1 para analisar as teclas digitadas. Como podemos observar, não estamos tratando os
eventos de KeyPressed e KeyReleased.
jTextField1.addKeyListener(new java.awt.event.KeyListener() {
public void keyTyped(KeyEvent e) {
TrataTecladigitada();
}
public void keyPressed(KeyEvent e) {
//
}
public void keyReleased(KeyEvent e) {
//
}
});
O método de tratamento está abaixo:
- -6
private void TrataTecladigitada(KeyEvent e) {
String s = jTextField1.getText();
s.concat(Integer.toString(e.getKeyChar()));
jLabel2.setText("Tecla ->"+Integer.toString(e.getKeyChar()));
}
A Interface ItemListener
Esta interface trata os eventos para as caixas de seleção. Funciona sempre que o componente muda de estado, de
selecionado para não selecionado ou vice versa.
Acrescentando um componente jCheckBox com o texto – Caixa Selecionada – para testar o tratamento do evento.
A Interface FocusListener
Esta interface gerencia o evento para o ganho ou a perda de foco de um componente. Possui dois métodos de
tratamento, uma para quando o componente ganha o foco e o outro para quando o componente perde o foco.
- -7
Através deste evento podemos enriquecer o tratamento das interfaces.
Acrescentamos o tratamento de evento para o foco para o componente jCheckBox2 no programa, teremos:
jCheckBox2.addltemListener(new
java.awt.event.ltemListener() {
public void itemStateChanged(ItemEvent e) {
trataMudancaEstado(e);
}
});
O método do tratamento foi implementado como segue:
Object(] i = jCheckBox2.getSelectedObjects();
if(i!=null)
jLabel2.setText("Caixa de Texto Está selecionada");
else
jLabel2.setText("Caixa de Texto não está selecionada");
}
A Interface FocusListener
Neste caso, verificamos se a caixa está selecionada ou não. Como temos apenas uma caixa, se a caixa estiver
selecionada, um objeto é retornado, caso contrário, o objeto i será nulo.
- -8
Antes de prosseguir, leia o texto “JComboBox”: http://estaciodocente.webaula.com.br/cursos/gon282/docs
/14POO_aula05_doc01.pdf
Tratamento de caracteres: validando expressões de seqüência de caracteres
O Java fornece um conjunto de classes para validar expressões regulares, como telefone, CEP, email, etc. São
muito úteis para validar entrada de dados, principalmente quando é necessário efetuar a crítica. Estas classes
são Pattern e Matcher.
Matches
Guarda tanto o padrão de uma expressão regular quanto a cadeia de caracteres que desejamos verificar.
Guarda tanto o padrão de uma expressão regular quanto a cadeia de caracteres que desejamos verificar.
Fique ligado
private boolean validaEmail(String email){
//Define o padrão da entrada de dados
Pattern p = Pattern.compile(".+@.+\\.[a-z]+");
http://estaciodocente.webaula.com.br/cursos/gon282/docs/14POO_aula05_doc01.pdf
http://estaciodocente.webaula.com.br/cursos/gon282/docs/14POO_aula05_doc01.pdf
- -9
Exemplo de cadastro de pessoa
Vamos fazer um programa para cadastrar elementos da classe pessoa, colocando em uma lista de elementos.
Este pequeno programa deverá criticar se existe elementos digitados, o email precisa estar nos padrões corretos
(ex.: pessoa@hotmail.com).
A navegação se dará através dos botões Início e Próximo. Ao clicar na caixa Habilita Navegação, os botões serão
habilitados e os botões de cadastro desabilitados.
Como só podemos autorizar cadastro com emails com a estrutura correta, o botão inclui só ficará habilitado
quando a crítica do texto do email estiver correta. Caso o email não esteja no padrão, o usuário terá que informar
um email no formato correto. O usuário ficará preso no campo email até digitar um email válido. Para sair do
campo, basta limpar a caixa de texto que será autorizado a sair. Observe na imagem que o botão inclui está
desabilitado
Pattern p = Pattern.compile(".+@.+\\.[a-z]+");
//Valida a cadeia de caracteres com o padrão definido
Matcher m = p.matcher(email);
return (m.matches());
}
- -10
Para ver o código do programa, clique aqui: http://estaciodocente.webaula.com.br/cursos/gon282/docs
/14POO_aula05_doc02.pdf
O que vem na próxima aula
•Compreender o funcionamento das ferramentas de mapeamento de acesso aos bancos de dados.
•Utilizar componentes para acesso a dados em banco de dados.
CONCLUSÃO
Nesta aula, você:
• Compreendeu os modelos de tratamentos de eventos para textos.
• Utilizou os tratamentos de eventos relacionados à validação de caracteres inseridos através do teclado.
• Manipulou com os tratamentos de eventos de componentes com textos e listas.
Saiba mais
Para esta aula sugiro as seguintes tarefas:
• Leitura do Capítulo 11 (11.14 até 11.17) do livro Java como programar, 6ª 
Edição, de H. Deitel e P. Deitel, Editora Pearson Education, 2005.
• Resolução dos exercícios de 11.19 até 11.26 do capítulo 11 do livro Java Como 
Programar.
•
•
•
•
•
http://estaciodocente.webaula.com.br/cursos/gon282/docs/14POO_aula05_doc02.pdf
http://estaciodocente.webaula.com.br/cursos/gon282/docs/14POO_aula05_doc02.pdf
	Olá!
	
	O que vem na próxima aula
	CONCLUSÃO

Mais conteúdos dessa disciplina