任何人都可以告訴我如何將.TIF格式的圖像存儲到ImageIcon
並將此圖像添加到列表模型?我試過這個,但給我java.lang.NullPointerException
。如何將.TIF圖像設置爲java中的ImageIcon?
public static void main(String[] args) throws Exception {
String path = "C:\\project\\aimages";
JFrame frame = new JFrame();
frame.setSize(500, 500);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
File folder = new File(path);
File[] listOfFiles = folder.listFiles();
DefaultListModel listModel = new DefaultListModel();
System.out.println("listOfFiles.length="+listOfFiles.length);
int count = 0;
for (int i = 0; i < listOfFiles.length; i++) {
//System.out.println("check path"+listOfFiles[i]);
String name = listOfFiles[i].toString();
System.out.println("name"+name);
// load only JPEGs
if (name.endsWith("jpg") || name.endsWith("JPG")|| name.endsWith("tif") || name.endsWith("TIF")) {
if(name.endsWith("tif") || name.endsWith("TIF"))
{
BufferedImage image = ImageIO.read(listOfFiles[i]);
BufferedImage convertedImage = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_RGB);
ImageIcon ii = new ImageIcon(image);
Image img1 = ii.getImage();
Image newimg = img1.getScaledInstance(75, 75, java.awt.Image.SCALE_SMOOTH);
ImageIcon newIcon = new ImageIcon(img1);
listModel.add(count++, newIcon);
}
else
{
ImageIcon ii = new ImageIcon(ImageIO.read(listOfFiles[i]));
Image img1 = ii.getImage();
Image newimg = img1.getScaledInstance(75, 75, java.awt.Image.SCALE_SMOOTH);
ImageIcon newIcon = new ImageIcon(newimg);
listModel.add(count++, newIcon);
}
}
}
JList p2 = new JList(listModel);
}
}
在這裏,我已經編輯我的代碼,這是我的錯誤味精 異常線程 「main」 顯示java.lang.NullPointerException 在javax.swing.ImageIcon中。(ImageIcon.java:228) 在ListImage1 .main(ListImage1.java:48)
你能發送錯誤信息嗎?它與此行有關BufferedImage image = ImageIO.read(listOfFiles [i]); ?也許listOfFiles [i]指向一個不存在的路徑,而你期望它指向圖像路徑,呵呵?調試它。 – Juvanis 2012-03-09 13:12:26
請告訴我們NPE在哪裏被拋出,並檢查什麼是空的。 – Thomas 2012-03-09 13:13:59
另外:除了查詢尺寸外,您不使用'image',因此'convertedImage'不包含任何實際的圖像信息。您錯過了這裏的轉換。 – Thomas 2012-03-09 13:15:44