|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Aug 2005
Città: Wien
Messaggi: 435
|
[JAVA] Problema con chiusura di un JFrame
Ciao a tutti,
per esercitarmi in Java stavo iniziando a mettere giù una calcolatrice visuale tipo quella di windows. Dopo aver implementato le funzioni base, ho deciso di inserire una funzione che chiede la conferma prima di chiudere la JFrame principale. Siccome esistono due metodi per chiudere la finestra, uno tramite menu e l'altro tramite la normale croce, ho creato due metodi differenti: Questa è la classe che viene chiamata se viene schiacciata la croce Codice:
private class CloseWarning extends WindowAdapter{ public void windowClosing(WindowEvent e){ int res = JOptionPane.showConfirmDialog (CalculatorDemo.this, "Chiudere la finestra?", "Frame Test", JOptionPane.YES_NO_OPTION); if (res == JOptionPane.YES_OPTION){ System.exit(0); } } } Codice:
private class Exit implements ActionListener { public void actionPerformed(ActionEvent e){ ClWarning cw = new ClWarning(); cw.windowClosing(e); } } Codice:
private class ClWarning{ public void windowClosing(ActionEvent e){ int res = JOptionPane.showConfirmDialog (CalculatorDemo.this, "Chiudere la finestra?", "Frame Test", JOptionPane.YES_NO_OPTION); if (res == JOptionPane.YES_OPTION){ new Exit(); } } } Codice:
public CalculatorDemo(){ super("Calculator ver. 0.1"); this.addWindowListener(new CloseWarning()); .... menu = new JMenu("File"); help = new JMenu("Help"); item = new JMenuItem("Exit ALT+F4"); item.addActionListener(new Exit()); menu.add(item); info = new JMenuItem("About Calculator"); help.add(info); bar = new JMenuBar(); bar.add(menu); bar.add(help); setJMenuBar(bar); .... } Spero in un vostro aiuto. Se vi servono altre info fatemi sapere Grazie
__________________
"Sono 126 miglia per Chicago. Abbiamo il serbatoio pieno, mezzo pacchetto di sigarette, è buio, e portiamo tutt'e due gli occhiali da sole" |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jul 2002
Messaggi: 4334
|
setDefaultCloseOperation( JFrame.DO_NOTHING_ON_CLOSE );
E poi nel listener gestisci tu la chiusura.
__________________
|Java Base| |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:56.