У меня есть диаграмма, созданная, как показано ниже, и я добавляю значения в TimeSeries (в другом месте в моей программе). Панель ChartPanel на самом деле содержится в JTabbedPane, и я не хотел бы перерисовывать диаграмму, пока не отображается ее вкладка. Могу ли я сообщить, что рендеринг не должен происходить при поступлении новых данных в TimeSeries, если только эта вкладка не отображается в данный момент? Я предполагаю, что есть некоторый вызов, который сигнализирует, что данные были обновлены и необходим новый рендеринг, поэтому в основном я хочу перехватить этот вызов и ничего не делать, если вкладка не отображается, пропустить вызов, если вкладка находится в процессе и вызовите его один раз вручную, когда пользователь переключится на эту вкладку. Это не главная проблема с одним ChartPanel в фоновом режиме, но у меня есть несколько на разных вкладках, и он начинает жрать CPU, как неприятный, чтобы постоянно обновлять 4-5 диаграмм.
sAccuracy = new TimeSeries("a");
TimeSeriesCollection dataset = new TimeSeriesCollection(sAccuracy);
JFreeChart c = ChartFactory.createTimeSeriesChart("Accuracy",
"", "Percent", dataset, false, false, false);
ChartPanel cp = new ChartPanel(c);