2016-04-23 19 views
1

私は初心者からJava GUIです。そして、フォルダから画像にアクセスしたいが、私は次のエラーが発生している。JAVAの画像フォルダから画像にアクセスする

マイコード

import java.awt.Image; 

import javax.swing.ImageIcon; 

public class Images { 

    private static String IMG_FOLDER = "C:/Users/RASHID/workspace/images/"; 

    public static Image ICON = getImage(IMG_FOLDER + "icon.png"); 

private static Images instance; 

    private Images() {} 

    public static Images getInstance() { 
     if(instance==null) 
      instance = new Images(); 
     return instance; 
    } 

    public static Image getImage(String image){ 
     return getImageIcon(image).getImage(); 
    } 

    public static ImageIcon getImageIcon(String image){ 
     return new ImageIcon(getInstance().getClass().getClassLoader().getResource(image)); 
    } 
} 

私がメインで、このいずれかを実行しようとすると、私は次のエラーを取得します。私はここで何が起こっているのか分からない。

Exception in thread "main" java.lang.ExceptionInInitializerError 
Caused by: java.lang.NullPointerException 
    at javax.swing.ImageIcon.<init>(Unknown Source) 
    at Images.getImageIcon(Images.java:38) 
    at Images.getImage(Images.java:34) 
    at Images.<clinit>(Images.java:9) 
+0

あなただけコンパイルされたバイナリから、ハードドライブからファイルを取得するためにクラスローダーを使用しないでください。 – CptBartender

答えて

0

ハードドライブからファイルをフェッチするためにクラスローダーを使用しません。代わりに、あなたはFileのようにそれらを取得し、Image初に変換する必要があります。

File sourceimage = new File("c:\\mypic.jpg"); 
Image image = ImageIO.read(sourceimage); 
return new ImageIcon(image); 

this siteから直接取得 - 見てみましょう)

0

あなたが取るconstrocturを使用してイメージアイコンオブジェクトを作成しようとしていますURLパラメータを返す(getResource()メソッドはURLオブジェクトを返すため、この場合はnullを返すため、NullPointerException)

指定されたファイルからImageIconを作成する場合は、ImageIcon(String filename)コンストラクタを使用する必要があります。ローカルフォルダから

+0

新しいImageIcon(getInstance()。getClass()。getClassLoader()。getResource(image));新しいImageIconを返します。 私はこれを使いたいのですが、画像にこのファイルを使用するにはどうすればいいですか? –

+0

getResource()メソッドはランタイムクラスパス(デフォルトではbinフォルダ)でリソースを探します。たとえば、画像フォルダをクラスパスに追加することができます。この方法に絶対的な道を渡す方法はないと私は考えている(私には言わないが)。 –

0

読む

File sourceimage = new File("c:\\picture_name.jpeg"); 
Image image = ImageIO.read(sourceimage); 
関連する問題