我使用JFreeChart在java swing中創建圖像直方圖。爲了創建它,我遍歷所有像素以獲得所有顏色。取決於大小和位深度,它需要一些時間。爲什麼我不能將一個XYSeriesCollection的值複製到其他地方?
一旦我把所有的數據放到一個XYSeriesCollection變量中。爲了能夠顯示和隱藏一些後面的內容,我保存了該變量的副本。
我的問題是,如果我不喜歡這樣寫道:
這工作沒有任何問題,但它是沒有效率的,因爲我不得不遍歷所有像素,並需要一段時間。
如果我只是複製這樣的:
final XYSeriesCollection data = createHistogram();
final XYSeriesCollection dataCopy = data;
當我執行的代碼,我得到這個異常:
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Series index out of bounds
at org.jfree.data.xy.XYSeriesCollection.getSeries(XYSeriesCollection.java:263)
我認爲,這是因爲當我刪除數據的一些系列他們如何從dataCopy中刪除,但不應該完全不同?我只是這個方法的工作:
data.removeAllseries();
data.addSeries(dataCopy.getSeries(index));
例如,如果我創建:
int x = 5;
int y = x;
x=0;
System.out.println(y)
輸出應該仍然是5,它並不無論我做什麼用X。我在做什麼或者認爲是錯誤的?
謝謝。
非常感謝,現在完美無缺。我一直在試圖做這樣的鏈接直方圖說,但是一旦我做完了,我不能通過從數據收集中刪除系列來顯示單個R,G或B通道,因爲HistogramDataset不包含方法刪除系列。因此,我決定自己編寫一切,遍歷所有像素,並在macbook pro 2012 13中爲每張17Mpx的TIFF照片和每種顏色16位創建一個「大約需要4秒的時間」 – nck
@nck:改變模型,而不是改變模型視圖中一系列的可見性; ['VisibleAction'](http://stackoverflow.com/a/11895709/230513)就是一個例子。 – trashgod