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);