O Java possui diversos tipos de Listeners (ouvidores), que são responsáveis por detectar ações em qualquer lugar da aplicação.
Existem diversos tipos de classes listeners, como WindowListener, KeyListener e FocusListener.
Cada um possui a responsabilidade de detectar as ações correspondentes e executar devidas ações. Essas ações são criadas pelo desenvolvedor.
Boa prática de como utilizar os Listeners
Ao necessitar de um listener, o mais indicado, é criar um nova classe que implementa o tipo de listener desejado, fazendo com que seja obrigatório implementar todos os métodos do listener.
Ex: Vou executar alguma ação quando a tecla enter for pressionada (ouvida)
Código java
public class MeuKeyListener implements KeyListener {
public BarCodeKeyListener() {
}
public void keyTyped(KeyEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
//Executa a ação se a tecla enter for pressionada
}
}
public void keyReleased(KeyEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
}Certo, detectamos a tecla enter, mas como fazer pra alterar algum objeto que está classe que estanciou o MeuKeyListener?
Simples!
Basta criar um devido construtor para a classe MeuKeyListener que aceite o(s) objeto(s) que deseja-se alterar.
Código java
public class MeuKeyListener implements KeyListener {
String mensagem = "";
public BarCodeKeyListener() {
}
public BarCodeKeyListener(String mensagem) {
this.mensagem = mensagem;
}
public void keyTyped(KeyEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
//Executa a ação se a tecla enter for pressionada
mensagem = "tecla ENTER pressionada";
}
}
public void keyReleased(KeyEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
}Feito isso, o objeto que deseja-se mudar, ganha um ponteiro em sua direção.
Traduzindo em poucas palavras:
Ao alterar o objeto passado ao listener, na verdade o objeto real estará sendo alterado.
Espero ter ajudado alguém, assim como esse "conceito" me ajudou bastante.

Entrar
Cadastre-se
Ajuda
Responder


Quote