Como abrir uma nova janela JFreeChart independente de um outro JFrame

eu tive um problema no código que ao instanciar a nova janela JFreeChart ela aparece, mas ela não fecha sozinha apenas quando eu fecho o JFrame Principal, eu queria saber como faço para fechar esta janela sem precisar fechar o JFrame Principal

Como está teu código?

Darlan_machado

esse e o código da janela que quero abrir

import java.awt.Color;
import java.awt.BasicStroke;
import java.awt.Dialog;
import javax.swing.JFrame;

import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;

public class XYLineChart_AWT extends JFrame {

public XYLineChart_AWT( String applicationTitle, String chartTitle,Double[][] x,int tamx ) {
super(applicationTitle);
JFreeChart xylineChart = ChartFactory.createXYLineChart(chartTitle ,“Tempo” ,“Temperatura”,createDataset(x,tamx) ,PlotOrientation.VERTICAL ,true , true , false);

  ChartPanel chartPanel = new ChartPanel( xylineChart );
  chartPanel.setPreferredSize( new java.awt.Dimension( 560 , 367 ) );
  final XYPlot plot = xylineChart.getXYPlot( );
  
  XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer( );
  renderer.setSeriesPaint( 0 , Color.RED );

  renderer.setSeriesStroke( 0 , new BasicStroke( 4.0f ) );

  plot.setRenderer( renderer ); 
  setContentPane( chartPanel ); 
  setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
  setAutoRequestFocus(true);
  setVisible(true);

}

private XYDataset createDataset(Double[][] x,int tamx) {
final XYSeries temp = new XYSeries( “Temperatura Ao Longo do Tempo” );

  for(int i=0;i<tamx;i++){
    
    temp.add(  x[i][0],x[i][1] );  
     
  }
         
               
  
  final XYSeriesCollection dataset = new XYSeriesCollection( );          
  dataset.addSeries(temp );          
  return dataset;

}

}

e o código a baixo ~e onde eu abro ou instancio a janela

DefaultTableModel dtmProdutos = (DefaultTableModel) jTable1.getModel();
Double d[][] = new Double[dtmProdutos.getRowCount()][dtmProdutos.getColumnCount()];
for (int i = 0; i < dtmProdutos.getRowCount(); i++) {
for (int j = 0; j < dtmProdutos.getColumnCount(); j++) {
try {

                d[i][j] = (Double) dtmProdutos.getValueAt(i, j);
                
            } catch (Exception e) {

            }

        }

    }
    this.chart = new XYLineChart_AWT("Temperatura com Arduino", "Variacao de Temperatura Ao Longo do Tempo", d, dtmProdutos.getRowCount());
    this.chart.pack();
    RefineryUtilities.centerFrameOnScreen(this.chart);
    
    this.chart.setEnabled(true);
    this.chart.setResizable(true);
    jButton3.setEnabled(false);
    jButton4.setEnabled(true);