2016-04-17 6 views
1

私は楽しいために小さなプロジェクトに取り組んできましたが、私は現在背景に取り組んでいますが、これを変更するには、 (プロジェクトがフルスクリーンで)最大の画面サイズにしかし、それはJLabelのサイズではなく、実際の画像サイズを大きくしJLabelとそれに挿入された画像を使って背景を設定する

public void setBackground(JLabel bg) { 

    bg = new JLabel(new ImageIcon(this.getClass().getResource("/Background.gif"))); 

    Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); 
    int width = (int) d.getWidth(); 
    int height = (int) d.getHeight(); 
    bg.setSize(width, height); 
    add(bg); 

} 

、これはなぜですか?

EDIT:

私はこれを行う方法を見つけたが、指定されたパスを見つけるように見えることはありません!私はそれが格納されているリソースフォルダ(Eclipseのソースフォルダ)を作成したが、そこに入れたが、入力ファイルを読むことができない。

public void setBackground(JLabel bg) { 
    try { 
     img = ImageIO.read(new File("/Background.gif")); 
    } catch(Exception e) { 
     e.printStackTrace(); 
    } 
    ImageIcon imgi = new ImageIcon(fitimage(img, bg.getWidth(), bg.getHeight())); 

    bg.setIcon(imgi); 

    Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); 
    int width = (int) d.getWidth(); 
    int height = (int) d.getHeight(); 
    bg.setSize(width, height); 
    add(bg); 

} 

private Image fitimage(Image img , int w , int h) { 
    BufferedImage resizedimage = new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB); 
    Graphics2D g2 = resizedimage.createGraphics(); 
    g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); 
    g2.drawImage(img, 0, 0,w,h,null); 
    g2.dispose(); 
    return resizedimage; 
} 

答えて

1

アプリケーションで使用する前に、画像のサイズを変更する必要があります。ラベルと同じサイズでなければなりません。イメージの実際のサイズが何であっても、それはJavaが表示するサイズです。ラベルにはそれぞれ自動的にサイズ変更されません。

+0

イメージを通常のイメージに変換してサイズを変更し、アイコンを適用してラベル作業に適用しますか? –

+0

変換する必要はありません。イメージアイコンのままにしておきます。形式が同じであることを確認してください。 paint.net(Microsoftからは無料です)を使用することをお勧めします。画像のサイズを変更するだけで、通常のMSペイントのような他のプロパティには影響しません。 – Osiris93

+0

サイズを変更するのに何が使えるのか分かりましたが、イメージを見つけることができません。ソースフォルダであるresourcesフォルダにあります。 –

関連する問題