Evento duplicado [RESOLVIDO]

No código abaixo, na linha (40) dentro do listener do evento é executado o código:

new Teste();

Se eu colocar um breakpoint nessa linha a parada eh executada ao clicar no botao da tela principal (Teste)
e um dialog se abrirah. O mais estranho eh que ao fechar esse dialogo, o breakpoint serah novamente
acionado nessa mesma linha. Ou seja o fechamento do dialogo esta produzindo o mesmo evento de
clic do botao na tela principal. Estah duplicando o evento original.

Ja tentei usar mouseclicked para ver se mudava algo e nao importa, ao fechar o dialogo, o evento eh
disparado exatamente como o original.

Alguem tem alguma ideia?

import java.awt.FlowLayout;     
import java.awt.event.ActionEvent;     
import java.awt.event.ActionListener;     
import javax.swing.JButton;     
import javax.swing.JDialog;     
import javax.swing.JFrame;     
     
public class Janela2 extends JFrame {     
     
    private JButton button = new JButton("Abrir JDialog");     
         
    public Janela2() {     
        super("Teste JDialog");     
             
        init();     
    }     
         
    private void init() {     
        montarJanela();     
        montarJDialog();     
        mostrarJanela();     
    }     
         
    private void montarJanela() {     
        setLayout(new FlowLayout());     
        setSize(500, 500);     
        montarJDialog();     
    }     
         
    private void mostrarJanela() {     
        setLocationRelativeTo(null);     
        setVisible(true);     
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);     
    }     
         
    private void montarJDialog() {     
        button.addActionListener(new ActionListener() {     
            @Override     
            public void actionPerformed(ActionEvent e) {     
                new Teste();     
            }     
        });     
        add(button);     
    }     
         
    public static void main(String[] args) {     
        new Janela2();     
    }     
}     
     
class Teste extends JDialog {     
         
    private JButton button;     
         
    public Teste() {     
        super(new JFrame(), "Teste", true);     
             
        init();     
    }     
         
    private void init() {     
        montarJanela();     
        montarComponentes();     
        mostrarJanela();     
    }     
         
    private void montarJanela() {     
        setSize(200, 200);     
        setLayout(new FlowLayout());     
    }     
         
    private void mostrarJanela() {     
        setLocationRelativeTo(this.getParent());     
        setVisible(true);     
        setDefaultCloseOperation(JDialog.EXIT_ON_CLOSE);     
    }     
         
    private void montarComponentes() {     
        button = new JButton("Adicionar");     
        add(button);     
    }     
     
}    

veja q vc chama o metodo montaJDialog duas vezes uma no metodo init linha 20 e outra na linha 27, desse modo adiciona os dois actionlisteners. veja se naum eh isso.

Nao tinha notado, pode ser isso mesmo.

Valeu.

Voce chamou o metodo montarJDialog() duas vezes, assim voce duplicou o evento
:thumbup: