Puoi implementare la seconda classe all'interno dell'altra come una classe annidata...in questo modo non dovresti più avere il problema.
Ciao.codice:import javax.swing.*; import java.awt.*; import java.awt.event.*; public class JButtonExample extends JFrame { /** * */ private static final long serialVersionUID = -9047187471312379634L; private JDialog dialog; private JButton okButton; private JButton jDialogButton; public JButtonExample() { // Top Level Container super("JButtonExample"); setBounds(10,35,200,70); getContentPane().setLayout(new FlowLayout(FlowLayout.CENTER)); // Finestra di Dialogo inizialmente invisibile dialog = new JDialog(this,"JDialog",false); dialog.setBounds(250,20,300,100); dialog.getContentPane().setLayout(new BorderLayout()); dialog.getContentPane().add(BorderLayout.CENTER, new JLabel("Chiudi questa Finestra per continuare",JLabel.CENTER)); dialog.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); // Crazione Pulsanti okButton = new JButton("OK"); jDialogButton = new JButton("Open Frame"); // Crea Ascoltatori (oberservers) ActionListener okListener = new OkButtonListener(); ActionListener openActionListener = new JDialogButtonListener(); // Registra gli ascoltatori verso i pulsanti okButton.addActionListener(okListener); jDialogButton.addActionListener(openActionListener); // OkButton come default Button getRootPane().setDefaultButton(okButton); //Aggiunge i pulsanti al top level Container getContentPane().add(okButton); getContentPane().add(jDialogButton); setVisible(true); } public class JDialogButtonListener implements ActionListener { public void actionPerformed(ActionEvent e){ dialog.setVisibile(true); } } }![]()

Rispondi quotando