Dùvida sobre eventos

Olá.
A minha dúvida não é nenhum problema nem erro, e sim de entendimento.
O professor fez o seguinte:

No pacote visão colocou uma classe TelaPrincipal e TelaDeposito e na classe TelaPrincipal colocou o seguinte código:

//public void addMenuListener (ActionListener l)
{
     //JMenuItem1.addActionListener(l);
}

No pacote controle colocou uma classe Controle e tem uma parte assim:

Public class Controle
{
     private TelaPrincipal tp;

     public Controle (TelaPrincipal tp)
     {
          this.tp = tp;
          //this.tp.addMenuListener(new MenuListener());
     }

     //class MenuListener implements ActionListener
     {
          //public void actionPerformed (ActionEvent e)
          {
               if(e.getActionCommand().equals("Depositar"))
               {
                    TelaDeposito td = new TelaDeposito();
                    //td.addDepositoListener(new DepositoListener(td));
               }
          }
     }

     class DepositoListener implements ActionListener
     .
     .
     .
}

Bem pessoal, as minhas dúvidas são as linhas comentadas…eu até ja estudei essa parte de eventos no período passado mas eu nao lembro direito…o material do periodo passado ta tudo no meu pc e meu pc ta ruim, ele nao ta ligando e o material que eu achei na internet eu não consegui entender direito.
Será que vcs podem me explicar em uma linguagem simples o que as linhas comentadas fazem, eu sei que é pedir muito mas eu gostaria muito que vocês me ajudassem.

abraços.

Oi,

As linhas comentadas não fazem nada. Simplesmente o compilador irá ignora-las e tratar o código
como um simples bloco de código.

{ // Como ficou um bloco de código, ele será executado na frente de qualquer outro // método do programa. }

Olhe um exemplo:

[code]public class Testando
{
public Testando()
{
System.out.println(“Entrou no construtor…”);
}

{
	System.out.println("Entrou no bloco de código...");
}

public static void main(String args[])
{
	new Testando();
}

}[/code]

Qual o primeiro passo de execução do programa??? Será o bloco de código… Saida do programa.:

Entrou no bloco de código... Entrou no construtor..

Bom… eu tenho até medo de responder essa sua pergunta. Pergunta simples d+ sempre tem uma pegadinha. Qual será ela?

Tchauzin!

desculpe a demora, mas como eu falei, estou sem PC.
eu sei que não fazem nada, eu queria uma explicação do código, eu vou falar pelo o que eu entendi mas nao sei se vai estar certo, ai vcs podem me corrigir ?

public void addMenuListener (ActionListener l) //método que poderia ser qualquer outro nome que recebe uma variável l do tipo ActionListener que é um tipo de evento. { JMenuItem1.addActionListener(l); //adiciona ao JMenuItem1 um evento passando para o JMenuItem1 a variável l que é do tipo ActionListener. }

[code] Public class Controle
{
private TelaPrincipal tp;

   public Controle (TelaPrincipal tp)  
   {  
        this.tp = tp;  
        this.tp.addMenuListener(new MenuListener()); //adiciona à varivael tp o método MenuListener que esta na classe TelaPrincipal passando para tp a classe MenuListener, essa parte eu nao entendi muito bem.  
   }  

   class MenuListener implements ActionListener //classe onde trata todos os eventos de tp.
   {  
        public void actionPerformed (ActionEvent e) //método de tratamento dos eventos que eu quiser colocar.
        {  
             if(e.getActionCommand().equals("Depositar"))  
             {  
                  TelaDeposito td = new TelaDeposito();  
                  td.addDepositoListener(new DepositoListener(td)); //o mesmo caso do MenuListener acima, eu nao entedi.
             }  
        }  
   }  

   class DepositoListener implements ActionListener  
   .  
   .  
   .  

} [/code]

deu pra entender agora minha dúvida ?
eu gostaria muito de uma, não é bem uma explicação, mas um comentário citando o que acontece nas linhas comentadas.

abraços.

Cara talvez eu ajude!

Na classe TelaPrincipal foi adicionado na linha 01 um menu do tipo ActionListener, que é na verdade é uma interface do Java utilizada para eventos. Na linha 03 ele adicionou um item de menu no menu . Ex: Menu Arquivo/item de menu Salvar.

Na classe Controle na linha 03 foi criada uma varíavel do tipo TelaPrincipal, pois com essa variável poderei chamar o método addMenuListener na classe TelaPrincipal. Na linha 05 é criado um método que recebe como parâmetro um objeto TelaPrincipal. Na linha 07 é repassado o valor do parâmetro para o atributo declarado na linha 03. Na linha 04 é chamado o método addMenuListener criado na TelaPrincipal, que recebe como o parâmetro o construtor MenuListener (construtor é um método responsável por inicializar os valores de atributos de uma classe). Mesmo caso da linha 18 que recebe como parâmetro um construtor da classe DepositoListener.

Dica: pesquise sobre construtores. vai facilitar mais o entendimento.

recebe ?
bom, vamos desmembrar o código:

1 - this.tp.addMenuListener();
2 - MenuListener m = new MenuListener()

1- é chamado o método addMenuListener, mas lá na classe TelaPrincipal o método recebe como parâmetro “ActionListener l”, na hora de chamar o método nessa linha eu num teria que passar alguma coisa ?

2 - é criado o objeto onde logo após eu crio a classe MenuListener onde eu vou tratar o evento.

Vamos lá! Não sei se vou ser claro.

Perceba que na linha 11 da classe Controle a classe MenuListener está implementando uma outra interface ActionListener que possui o método actionPerformed que é implementado a partir da linha 13, pois as interfaces tem seus métodos implementados em classes concretas. (Pesquise sobre interfaces e heranças) . E realmente é passado alguma coisa que é um objeto MenuListener que implementa a ActionListener.