Oppure

Loading
11/11/10 22:40
marcouio
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

package view.componenti.grafici;

import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.sql.SQLException;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.DefaultPieDataset;

import view.font.ButtonF;
import business.DBUtil;
import business.Database;
import business.ascoltatori.DialogHandler;

public class GrEntrate1 extends JDialog implements ActionListener{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private DefaultPieDataset dataset;
	private double entrateFisse = Database.totaleEntrateAnnoCategoria("Fisse");
	private double enrateVariabili = Database.totaleEntrateAnnoCategoria("Variabili"); 


	/**
	 * Create the dialog.
	 * @throws SQLException 
	 * @throws IOException 
	 */
	public GrEntrate1() throws SQLException, IOException {
		super();
		
		dataset = new DefaultPieDataset();
		dataset.setValue("Fisse", entrateFisse);
		dataset.setValue("Variabili", enrateVariabili);
		
		JFreeChart chart = ChartFactory.createPieChart("Entrate", dataset, true, true, true);
		
		ChartUtilities.saveChartAsPNG(new java.io.File("immagini/torta.png"), chart, 550, 550);
		setBounds(10, 10, 550, 550);
		getContentPane().setLayout(null);
	
		DBUtil.closeConnection();
		setSize(new Dimension(600, 600));
		ImageIcon image = new ImageIcon("immagini/torta.png");
		JLabel immagine = new JLabel();
		immagine.setLocation(0, 0);
		immagine.setSize(new Dimension(578, 506));
		immagine.setIcon(image);
		getContentPane().add(immagine);
		JButton chiudi = new ButtonF("Chiudi");
		chiudi.setActionCommand("chiudi");
		chiudi.setBounds(236, 528, 97, 34);
		getContentPane().add(chiudi);
		chiudi.addActionListener(new DialogHandler(this));
		chiudi.addActionListener(this);
	}



	@Override
	public void actionPerformed(ActionEvent e) {
		if(e.getActionCommand().equals("chiudi")){
			GrEntrate1.this.dispose();
			setDefaultCloseOperation(DISPOSE_ON_CLOSE);
			
		}
		
	}
	

}

aaa