Non hai provato a passare f al costruttore?
Magari in questo modo riesci a risolvere il problema, oppure potresti portare la dichiarazione di f fuori dal main, cioè renderla generale, ad esempio:codice:public class finestra extends JPanel implements ItemListener{ ... JButton cambia; public finestra(JFrame f){ super(); ... cambia=new JButton(" MODIFICA "); cambia.addActionListener(new pulsante()); add(cambia); } class pulsante implements ActionListener{ public void actionPerformed (ActionEvent e){ Object PulsantePremuto = e.getSource(); if((PulsantePremuto==cambia){ JOptionPane myoption = new JOptionPane ("messaggio", JOptionPane.QUESTION_MESSAGE, JOptionPane.YES_NO_OPTION); JDialog mydialog = myoption.createDialog(f,"titolo"); mydialog.pack(); mydialog.show(); } } } public static void main(String arg[]){ JFrame f = new JFrame("Orari"); Container c= f.getContentPane(); finestra fin = new finestra(f); c.add(fin); f.addWindowListener(new Ascoltatore()); f.setSize(410,330); f.setLocation(400,250); f.show(); } }
Prova a vedere se con uno di questi due metodo riesci a risolvere il tuo problema (nel secondo metodo ho dato per scontato che il main e la parte della JDialog si trovano nella stessa classe, altrimenti non va bene).codice:Nella classe: JFrame f; Nel main: f = new JFrame("Orari");
Ciao.![]()

Rispondi quotando