Si ti sei spiegato benissimo però in questo caso mi sembra che hai messo una cosa inutile, se dichiari f all'inizio della classe poi non serve che la dichiari anche nel main e non serve che nel main la passi al costruttore, ti ho evidenziato qui sotto le cose che mi sembrano inutili!
Visto che usi f nel main che è un metodo statico devi dichiarare anche f statica (se lo fai dentro diventa così automaticamente ma visto che lo fai fuori lo devi fare esplicitamente), forse prima non ti diceva niente per chè hai messo la dichiarazione anche nel main!codice:public class finestra extends JPanel implements ItemListener,ActionListener{ ... JButton cambia; static JFrame f; public finestra(){ super(); ... cambia=new JButton(" MODIFICA "); cambia.addActionListener(this); add(cambia); } 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 questi cambiamenti ti funziona bene lo stesso!
Ciao.![]()

Rispondi quotando