2016-05-12 5 views
-1

明らかに、これは自分のディスクから自分のプログラムにイメージを取得するために使用しているコードです。jLabelに合うようにJAVAでイメージのサイズを変更するには?

public void getVehicleImage(){ 
    FileDialog fd = new FileDialog(this); 
    fd.setFile("*.jpg; *.jpg; *.png; *.gif"); 
    fd.show(); 
    vehicle_path = fd.getDirectory()+fd.getFile(); 
    vehicleFileName.setText(vehicle_path = fd.getFile()); 
    vehicleImagePath.setText(vehicle_path = fd.getDirectory()+fd.getFile()); 
    image.setIcon(new ImageIcon(vehicle_path)); 
} 

イメージを自分のjLabelのサイズに合わせるにはどうすればよいですか?私は使用しようとしました

getScaledInstance() 

しかし、まだ良い。また、ディスクからイメージを取得する方法について正しいコードを使用しているかどうか尋ねたいと思いますか?私はちょっと間違っていると感じます。

答えて

1

私は同様の問題に直面し、回避策の下にやった:

ステップ1:お使いのファイルシステムから、BufferedImageとして絵をお読みください。

BufferedImage image = null; 
try { 
    image = ImageIO.read(new File("fileName.jpg")); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 

ステップ2:JLabelの

BufferedImage img= image.getScaledInstance(label.width, label.height, 
     Image.SCALE_SMOOTH); 

ステップ3の大きさである新しいBufferedImageを作成します。あなたの場合はリサイズされたBufferedImage(ステップ2)

ImageIcon imageIcon = new ImageIcon(img); 

から新しいイメージアイコンを作成します。ヘルパーメソッドを作成し、ImageIconを次のように作成しながら呼び出す:

public void getVehicleImage(){ 
................... 
    image.setIcon(new ImageIcon(getScaledImage(vehicle_path)));//call helper here 
} 

これは、ヘルパー関数とすることができる。

public BufferedImage getScaledImage(String imagePath){ 
     BufferedImage image = null; 
     try { 
      image = ImageIO.read(new File("fileName.jpg")); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

     BufferedImage img= image.getScaledInstance(label.width, label.height, 
       Image.SCALE_SMOOTH); 

     return img; 
    } 
+0

私はもっとそれを詳しく説明するように要求されます場合は、あなたが気にしませんか?上記のコードでどのように実装すればよいですか?方法全体を書き直すべきですか?これは申し訳ありませんが、お返事を頂き、ありがとうございました。本当に感謝しています。 – poorgrammer

+0

@poorgrammer親切に修正された回答を確認してください –

+0

ちょっと@ダークナイト。私がしたことを確認してください。私はうんざりしていると思うので、私はあなたが私に言っているものを得ることができないので、これは私がやったことです。 [これを確認してください](http://pastebin.com/PK1uCk46)私はNULLポインタ例外を取得しています。 – poorgrammer

関連する問題