2016-04-14 7 views
0

私のプログラムを実行するのに問題があります。基本的に私のプログラムの第1ステップは、JFileChooserを使ってイメージを開いてバッファリングされたイメージにすることです。これは私が持っているものである:(私のcatchステートメントでキャッチ)nullポインタ例外を取得JFileChooserイメージをバッファに入れたイメージ

JButton open = new JButton(); 
      JFileChooser fc = new JFileChooser(); 
      File selectedFile = fc.getSelectedFile(); 
      fc.setDialogTitle("Please choose an image..."); 
      FileNameExtensionFilter filter = new FileNameExtensionFilter("JPEG", "jpeg", "jpg", "png", "bmp", "gif"); 
      BufferedImage origImage = null; 

      String path = ""; 
      File f = fc.getSelectedFile(); 
      boolean exists = false; 
      fc.addChoosableFileFilter(filter); 


      try { 

       f = fc.getSelectedFile(); 
       exists = f.exists(); 
       path = f.getAbsolutePath(); 

       origImage = ImageIO.read(new File(path)); 
      } 
      catch(Exception e) { 
       System.out.println(e); 
       System.exit(0); 
      } 

イムは、私はそれがgetbsolutepathとは何かを持っていると思うが、イムはわかりません。何か案は?ありがとう!

+0

origImage = 'で何が悪いですImageIO.read(f); '? – MadProgrammer

+0

あなたは決してファイルチューザーを開くように見えませんか? – MadProgrammer

答えて

3

+0

JFileChooserペインでユーザーがキャンセルを押すと、プログラムを終了させる方法は? – Elchapo

+0

@Elchapoコードに応じてできることはたくさんありますが、 'else'文を使って' System.exit(0) 'を簡単に呼び出すことができます。 'origImage'が' null'かどうかを調べるほうが良いかもしれません。そうであれば、メソッドの最後まで実行させて、 'null'でもなければ、これを何とか処理してくださいあなたが望む方法 – MadProgrammer

+0

おかげで束! origImage == nullは理にかなっています!ありがとう!! – Elchapo

-2

試してみてください。この

パス= f.getAbsolutePath()( "\\"、 "\")を交換してください。あなたが実際にファイルチューを開くように見えることはありませんので、何のファイルがこれまで以上に詳細How to Use File Choosersを見てみましょうNullPointerException

JFileChooser fc = new JFileChooser(); 
fc.setDialogTitle("Please choose an image..."); 
FileNameExtensionFilter filter = new FileNameExtensionFilter("JPEG", "jpeg", "jpg", "png", "bmp", "gif"); 
fc.addChoosableFileFilter(filter); 

BufferedImage origImage = null; 
// You should use the parent component instead of null 
// but it was impossible to tell from the code snippet what that was. 
if (fc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { 
    File selectedFile = fc.getSelectedFile(); 
    try { 
     origImage = ImageIO.read(selectedFile); 
    } catch (IOException ex) { 
     ex.printStackTrace(); 
    } 
} 

を占めることになる選択されていない

+1

これは必須ではありません。 'ImageIO.read'は' File'リファレンスを取ることができるので、OPには 'String'ファイル名がつぶれてしまうのではなく、実際にOPには何も書かれていないので、 APIがすでにそれらを説明しているので、 – MadProgrammer

関連する問題