我想按值傳遞一個ImageIcon實例,因爲我們知道默認情況下它是按值傳遞引用。有什麼方法可以解決這個問題嗎?ImageIcon引用問題
ImageIcon img1 = new ImageIcon();
ImageIcon img2 = new ImageIcon();
img1 = img2; // both share the same reference.......
我試着使用的ImageIcon的getImage()
和setImage()
。
但實際上我的程序包括將圖像寫入文件,並且圖像的質量似乎發生了變化。
總之是有辦法使用功能
img1 = func(img2); // both do not share the same refernce. But the value is copied
至少我怎麼能留住使用getImage()
或setImage()
精確的圖像質量通過?
根據請求提供一些附加信息。
我正在使用的是一個jpg圖像,並且我已經將該功能完全包含爲 image = img1.getimage();
img2.setImage(image);
我一直保持着它擁有默認的ImageIcon方含JPG圖像的單獨的Java類,我從它使用一些類方法,如
ImageIcon defaulticon = new ImageIcon("d:\\default.jpg");
public void getdefaultimage(ImageIcon img)
{
img.setImage(defaulticon.getImage());
}
// The class which I maintained specifically for this purpose is a pure java class.
[Java不支持通過引用](http://javadude.com/articles/passbyvalue.htm) – gobernador
也不需要。我認爲「通過參考/價值」這個問題在這裏是一個非問題,真正的問題是圖像質量問題之一。 –
@HovercraftFullOfEels閱讀最新帖子... –