Porque isso gera os $1?

1 resposta
A

Ola
li em alguns posts anteriores falando sobre classe anonima que gera os arquivos$1.class

eu nao entendi muito bem. Agora eu desenvolvimento um pequeno software de testes meus, verifiquei que criei uma classe e geral $6, procurei o que estava gerando isso e achei… mas nao entendi o porque.

vou explicar.

eu tenho uma classe chamada Tela() onde eu crei a tela em JFrame e coloquei os botoes como public

tenho outra classe chamada prgTela que extende Tela() nela eu tenho o meu static main, ou seja, ela que é a primeira classe a ser executada e ela herda os métodos da prgTela que é sua super Classe. meu objetio com isso é separar os códigos de Tela com as programações mais "pesadas’.

no prgTela eu implemento os botoes
botao.addActionListener(new… e ae que esta o lance de criar os $
pois eu tenho 6 botoes e se na classe prgTela eu implementar os 6 botoes ele gera os prgTela$1…6.class
nao entendi porque isso?

como eu posso resolver isso de nao criar? apenas curiosidade

obrigado

1 Resposta

Bruno_Cardoso

Ele cria os $ porque voce esta a usar classes anonimas para implementar os ActionListeners

Veja o seguinte exemplo onde se usa uma classe anonima para implementar o listener:
private JButton b = new JButton("Button");
    
    b.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
            // whatever....
      }
    });

Agora o mesmo usando uma classe normal:

private JButton b = new JButton("Button");
    
  class ButtonListener implements ActionListener {
    public void actionPerformed(ActionEvent e) {
        // Whatever...
    }
  }
  private ButtonListener bl = new ButtonListener();
  b.addActionListener(bl);
Criado 16 de março de 2003
Ultima resposta 16 de mar. de 2003
Respostas 1
Participantes 2