Hallo,
ich habe ein Array mit Daten welche ich als BarChart mit JFreeChart anzeige. Das funktioniert soweit.
Wenn sich nun aber die Daten im Array ändern soll auch der Chart aktualisiert werden. Wie ich in der API gelesen habe sollte das eigentlich automatisch geschehen, tut es aber leider nicht.
Den Chart erzeuge ich so:
Wenn sich nun die Daten im Array "weekdayHisto" geändert haben "aktualisiere" ich den Chart so:
Das funktionier zwar, aber das ist doch Pfusch...
Kann mir jemand sagen, wie man es "richtig" macht?
ich habe ein Array mit Daten welche ich als BarChart mit JFreeChart anzeige. Das funktioniert soweit.
Wenn sich nun aber die Daten im Array ändern soll auch der Chart aktualisiert werden. Wie ich in der API gelesen habe sollte das eigentlich automatisch geschehen, tut es aber leider nicht.
Den Chart erzeuge ich so:
Java:
public void showChart() {
datasetWeekday = createWeekdayChartDataset();
chartWeekday = createChartWeekday(datasetWeekday);
chartWeekdayPanel = new ChartPanel(chartWeekday);
myGUI.weekdayChartCanvas.add(chartWeekdayPanel);
myGUI.weekdayChartCanvas.repaint();
}
...
private CategoryDataset createWeekdayChartDataset() {
String[] dayOfWeek = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
for (int i = 0; i < weekdayHisto.length; i++) {
dataset.addValue((weekdayHisto[i] / 1000000f), "", dayOfWeek[i]);
}
return dataset;
}
Wenn sich nun die Daten im Array "weekdayHisto" geändert haben "aktualisiere" ich den Chart so:
Java:
public void refreshChart() {
mytGUI.weekdayChartCanvas.removeAll();
datasetWeekday = createWeekdayChartDataset();
chartWeekday = createChartWeekday(datasetWeekday);
chartWeekdayPanel = new ChartPanel(chartWeekday);
mytGUI.weekdayChartCanvas.add(chartWeekdayPanel);
mytGUI.weekdayChartCanvas.repaint();
}
Das funktionier zwar, aber das ist doch Pfusch...
Kann mir jemand sagen, wie man es "richtig" macht?