Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - JDialog si chiude ma non rilascia le risorse
Forum - Java - JDialog si chiude ma non rilascia le risorse

Avatar
marcouio (Ex-Member)
Newbie


Messaggi: 15
Iscritto: 29/09/2010

Segnala al moderatore
Postato alle 23:40
Giovedė, 11/11/2010
Ciao, ho un problemi con le Jdialog, spero possiate aiutarmi. Ho inserito un pulsante all'interno di un jPanel. Quando lo premo viene aperta una jdialog che mi carica un grafico e un pulsante. Quando premo il pulsante all'interno della jdialog attraverso un listener chiamo il dispose() per liberare le risorse. Il punto č che la dialog si chiude ma non rilascia le risorse! Se riapro la JDialog mi ricarica lo stesso grafico anche con i dati cambiati. Come posso fare? Su qualche sito ho visto che utilizzano un costruttore della JDialog con il Frame owner, ma in questo caso io ho un JPanel e non posso sostituirlo con un JFrame. Posto la J Dialog

Codice sorgente - presumibilmente Java

  1. package view.componenti.grafici;
  2.  
  3. import java.awt.Dimension;
  4. import java.awt.event.ActionEvent;
  5. import java.awt.event.ActionListener;
  6. import java.io.IOException;
  7. import java.sql.SQLException;
  8.  
  9. import javax.swing.ImageIcon;
  10. import javax.swing.JButton;
  11. import javax.swing.JDialog;
  12. import javax.swing.JLabel;
  13.  
  14. import org.jfree.chart.ChartFactory;
  15. import org.jfree.chart.ChartUtilities;
  16. import org.jfree.chart.JFreeChart;
  17. import org.jfree.data.general.DefaultPieDataset;
  18.  
  19. import view.font.ButtonF;
  20. import business.DBUtil;
  21. import business.Database;
  22. import business.ascoltatori.DialogHandler;
  23.  
  24. public class GrEntrate1 extends JDialog implements ActionListener{
  25.  
  26.         /**
  27.          *
  28.          */
  29.         private static final long serialVersionUID = 1L;
  30.         private DefaultPieDataset dataset;
  31.         private double entrateFisse = Database.totaleEntrateAnnoCategoria("Fisse");
  32.         private double enrateVariabili = Database.totaleEntrateAnnoCategoria("Variabili");
  33.  
  34.  
  35.         /**
  36.          * Create the dialog.
  37.          * @throws SQLException
  38.          * @throws IOException
  39.          */
  40.         public GrEntrate1() throws SQLException, IOException {
  41.                 super();
  42.                
  43.                 dataset = new DefaultPieDataset();
  44.                 dataset.setValue("Fisse", entrateFisse);
  45.                 dataset.setValue("Variabili", enrateVariabili);
  46.                
  47.                 JFreeChart chart = ChartFactory.createPieChart("Entrate", dataset, true, true, true);
  48.                
  49.                 ChartUtilities.saveChartAsPNG(new java.io.File("immagini/torta.png"), chart, 550, 550);
  50.                 setBounds(10, 10, 550, 550);
  51.                 getContentPane().setLayout(null);
  52.        
  53.                 DBUtil.closeConnection();
  54.                 setSize(new Dimension(600, 600));
  55.                 ImageIcon image = new ImageIcon("immagini/torta.png");
  56.                 JLabel immagine = new JLabel();
  57.                 immagine.setLocation(0, 0);
  58.                 immagine.setSize(new Dimension(578, 506));
  59.                 immagine.setIcon(image);
  60.                 getContentPane().add(immagine);
  61.                 JButton chiudi = new ButtonF("Chiudi");
  62.                 chiudi.setActionCommand("chiudi");
  63.                 chiudi.setBounds(236, 528, 97, 34);
  64.                 getContentPane().add(chiudi);
  65.                 chiudi.addActionListener(new DialogHandler(this));
  66.                 chiudi.addActionListener(this);
  67.         }
  68.  
  69.  
  70.  
  71.         @Override
  72.         public void actionPerformed(ActionEvent e) {
  73.                 if(e.getActionCommand().equals("chiudi")){
  74.                         GrEntrate1.this.dispose();
  75.                         setDefaultCloseOperation(DISPOSE_ON_CLOSE);
  76.                        
  77.                 }
  78.                
  79.         }
  80.        
  81.  
  82. }


PM