2016-04-14 18 views
0

Programlarımın çalışmasını sağlamak için bazı sorunlar yaşıyorum. Temel olarak programımın 1. adımı, JFileChooser'ı bir görüntü açmak ve tamponlanmış bir görüntü haline getirmek için yeterli basitlikte kullanmaktır.JFileChooser resmi arabelleğe alınmış görüntüye

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); 
      } 

im (benim catch deyimi tarafından yakalanan) bir boş gösterici istisna bunu getbsolutepath ile ilgili bir şey olduğunu düşünüyorum alıyorum, ama emin değilim im: Bu ben ne var. Herhangi bir fikir? Teşekkürler!

+0

origImage = 'nesi var ImageIO.read (f) ''? – MadProgrammer

+0

Dosya seçici hiç açılmıyor mu? – MadProgrammer

cevap

3

+0

hesabını açıklamış gibi, kullanıcı JFileChooser bölmesinde iptal ederse programı sonlandırmak için nasıl giderim? – Elchapo

+0

@Elchapo Kodunuza bağlı olarak yapabileceğiniz pek çok yol var, '' system'exit (0) 'basit çağrısına' else' ifadesini de kullanabilirsiniz, ama ben her zaman biraz sert buluyorum. Eğer origImage'ın "null" olup olmadığını kontrol etmek daha iyi olabilir, eğer varsa, yürütmenin yöntemin sonuna düşmesine izin verirsiniz ve eğer "null" değilse, onu hiçbir zaman işlemezsiniz İstediğiniz yolu – MadProgrammer

+0

Teşekkür bir demet! origImage == null anlamlıdır! Teşekkürler!! – Elchapo

-2

deneyin bu

yol = f.getAbsolutePath() ("\\", "\") değiştirin.; Aslında dosya seçici açmak gibi asla, bu yüzden hiçbir dosya hiç fazla ayrıntı için How to Use File Choosers bir göz atın 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(); 
    } 
} 

için hesap hangi seçilir

+1

Gerekli değil, "ImageIO.read" bir "Dosya" referansını alabilir, bu yüzden OP zaten "String" dosya isimleriyle uğraşmayacaktır ve OP hiçbir zaman fiili olarak bildirmediğinden, değişmek için bir sebep olmamalıdır. Daha sonra API onlar için zaten – MadProgrammer

İlgili konular