Non so se il problema e' questo, ma quante volte chiami il metodo prodottoGUI?
Immagino che tu lo chiami ogni volta vuoi mostrare il JDialog.
Ad ogni chiamata aggiungi un listener sul bottone, quindi la seconda volta l'evento viene intercettato due volte perche' hai due listener, la terza volta tre e cosi' via...
Inoltre ci sono altri metodi nel resto del codice che aggiungono un listener al bottone?
Ti conviene aggiungere il listener al bottone in un blocco di codice che sei sicuro di eseguire una volta sola (tipo un costruttore) oppure reistanziare il bottone ad ogni chiamata del metodo.
Se il problema non era questo, sorry, ma e' la prima cosa che mi e' venuta in mente.
codice:
public void prodottoGUI(){
//istruzioni per far inserire la seconda matrice int[][] a
popUp_matrice(x);
}
public void popUp_matrice(JButton button){
table2=new JTable(m.getRows(),m.getColumns());
popUp=new JDialog(this,"InserisciMatrice",true);
popUp.setBounds(500,40,600,200);
JPanel p=new JPanel();
p.add(table2);
p.add(button);
popUp.add(p);
button.addActionListener(this);
//popUp.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
System.out.println("Ho reso visibile la finestra");
popUp.setVisible(true);
}