我正在尝试使用 using 创建一些数据的缩略图图表JScrollPane,但遇到性能困难。此示例有大约 100 个缩略图,每个缩略图有 5000 个样本。当我尝试向下滚动并返回向上多次时,滚动会出现延迟,CPU 负载增加,应用程序内存使用量达到超过 500 Mb。
有没有办法在不减少数据的情况下避免此性能问题?
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.GridLayout;
import java.util.Random;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.ThermometerPlot;
import org.jfree.data.general.DefaultValueDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
public class ThumbnailChartsTest extends JPanel {
private static final int W = 200;
private static final int H = W;
private static final int N = 5000;
private static final Random random = new Random();
private static …Run Code Online (Sandbox Code Playgroud) 我将一些数组放入带有2个键的hashmap中.然后我试图提取这些值,但只能获取最后一个键的值.对于任何其他键我得到空指针异常:
"线程中的异常"主"java.lang.RuntimeException:键没有xyValues:tmp.DataScan1.getSerie(DataScan1.java:49)位于tmp.DataScan1.main的数据为'L','18.'(DataScan1.java: 66)"
怎么了?
这是我的工作示例:
import java.util.Arrays;
import java.util.HashMap;
public class DataScan1 extends HashMap<Character, DataSerie>{
public static double[] freqs;
public void putSerie(char lriv, double freq, double[][] xyValues){
char key1 = lriv;
long key2 = double2key(round(freq, 4));
DataSerie dataSerie = new DataSerie();
dataSerie.put(key2, xyValues);
this.put(key1, dataSerie);
}
private static long double2key(double value){
long result = (long) (value * 10000);
return result;
}
public DataScan1(){
freqs = new double[]{1, 16.9,4.0,18.2,17.4};
for (int idxfreq=0; idxfreq<freqs.length; idxfreq++){
double[][] array = new double[][]{{1, 2}, {3,4}}; …Run Code Online (Sandbox Code Playgroud)