Implementando “Listeners”
|
Os “listeners”
do ambiente awt/swing podem ser implementados de várias maneiras. Um Listener
é associado a um componente gráfico. O componente gráfico tipicamente tem métodos: addxxxxxListener(xxxxxListener
listener) onde
xxxxx é o tipo de listener (p.ex. action ou MouseMotion). Os listners são
interfaces que prescrevem métodos que serão invocados pela MVJ quando o
evento correspondente ocorrer. Alguns listners têm apenas um método como por
exemplo o método actionPerformed nas interfaces ActionListeners, mas o
MouseListener tem cinco métodos. O parâmetro de chamada dos métodos é do tipo
Event relacionado ao evento correspondente. . |
|
No
exemplo CounterGUI, o “listener era uma instância (countList) da classe: countList
é instanciada na instância counterPane da classe.CounterPanel |
|
Um
listener pode ser implementado por uma classe interna à definição da classe
correspondente ao Panel class InternalCounterListener
implements ActionListener{ //The constructor is empty public InternalCounterListener()
{} public void actionPerformed(ActionEvent evt){ String
actionCommand = evt.getActionCommand(); ... |
|
Um “listener”
pode não ter uma classe especifica nem ser uma classe interna, ou seja usa-se
a própria classe correspondente ao Panel: |
|
Um “listener”
pode ainda corresponder a uma classe anônima: upButton.addActionListener( new ActionListener(){ public void actionPerformed
(ActionEvent evt){ increment(); } } ); |