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;
}
イメージを通常のイメージに変換してサイズを変更し、アイコンを適用してラベル作業に適用しますか? –
変換する必要はありません。イメージアイコンのままにしておきます。形式が同じであることを確認してください。 paint.net(Microsoftからは無料です)を使用することをお勧めします。画像のサイズを変更するだけで、通常のMSペイントのような他のプロパティには影響しません。 – Osiris93
サイズを変更するのに何が使えるのか分かりましたが、イメージを見つけることができません。ソースフォルダであるresourcesフォルダにあります。 –