2011-01-04 21 views
0

getScaledInstanceのような方法を試しましたが、すべて動作しません。オンラインでも解決策が見つかりませんでした。私が現在使用しているコードは:画像全体を見るためにスクロールせずに、800x600イメージをjLabelに配置する方法

public class ShowImage_1 extends Panel { 

    BufferedImage image; 

    public ShowImage_1() { 
     try { 
      File input = new File("C:/Lighthouse.jpg"); 
      image = ImageIO.read(input); 
      image.getGraphics().drawImage(image, 0, 0, 400, 400, null); 
     } catch (IOException ie) { 
      System.out.println("Error:" + ie.getMessage()); 
     } 
    } 

    public void paint(Graphics g) { 
     g.drawImage(image, 0, 0, null); 
    } 

    static public void main(String args[]) throws Exception { 
     JFrame frame = new JFrame("Display image"); 
     Panel panel = new ShowImage_1(); 

     frame.getContentPane().add(panel); 
     frame.pack(); 
     frame.setVisible(true); 
    } 
} 

パネルには完全な画像が表示されません。どのようにそれをやって行くかについての任意のアイデア?

私はこの効果を達成したい

http://img209.imageshack.us/i/77894822.png/

しかし、私は今を取得すると、このです:http://img600.imageshack.us/i/19267006.png/

私はそれを取得するために使用できる他のコード?

+0

「完全な画像が表示されない」とはどういう意味ですか?パネルとフレームは十分に大きくなっていますか? SSCCEを投稿できますか? – jzd

答えて

1

は、画像を保持するのに十分な大きさのパネルが。これは、JLabelのに画像を追加し、あなたの問題

+0

画像がMatlabから生成されているため、サイズを制御できません。それは大きすぎます。私は大きなフレームを作ることができませんでした – Emily

0

を解決することを確認します。フレームにラベルを追加します。次に使用:

frame.pack(); 

ませ

frame.setSize(800, 600); 

あなたが問題を実証あなたのSSCCE投稿もっとヘルプが必要な場合。

+0

ShowImage_1 public Panel ShowImage_1 Panel { BufferedImage image; public ShowImage_1(){ { ファイル入力=新しいファイル( "C:/Lighthouse.jpg"); image = ImageIO.read(入力); image.getGraphics()。drawImage(image、0、0、400、400、null);System.out.println( "エラー:" + ie.getMessage()); } } public void paint(Graphics g){ g.drawImage(image、0、0、null); } – Emily

+0

@Emily、コメントエリアではなく、オリジナルの投稿にSSCCEを追加してください。 – camickr

関連する問題