javaで画像を表示したのですが、変です。
画像をのせたのですが、表示した画像の透明部分のところに予期しない形で画像が重なってしまいます。
また、ウィンドウのサイズを何回かスクロールしていじると元に戻ります。
文字数の関係ですべてのソースを乗せられないのですが、自作画像クラスだけ記載します。
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JPanel;
public class Layer extends JPanel {
BufferedImage image;
int x=0,y=0; //表示サイズ
int lx=0,ly=0; //表示場所
int originalX,originalY;
int startX,startY;
Layer(){
}
public void p(String imgpath,int lX,int lY,int X,int Y){
x=X;y=Y;lx=lX;ly=lY;
image=Imagedraw(imgpath);
}
public void p(String imgpath,int lX,int lY){
lx=lX;ly=lY;
image=Imagedraw(imgpath);
x=originalX;
y=originalY;
setSize(x,y);
}
public void p(String imgpath){
image=Imagedraw(imgpath);
x=originalX;
y=originalY;
setSize(x,y);
}
public BufferedImage Imagedraw(String imgpath){
BufferedImage img=null;
try{
img = readImage(imgpath);
}catch(Exception e){
e.printStackTrace();
}
setLocation(lx,ly);
setSize(x,y);
return img;
}
public void setLocation(int lX, int lY){
lx=lX;ly=lY;
super.setLocation(lx,ly);
}
public void paint(Graphics g){ //イメージを描画
g.drawImage(image,0,0,x,y,startX,startY,x+startX,y+startY,this);
}
public BufferedImage readImage(String path) throws IOException{
BufferedImage img;
img = ImageIO.read(new File(path));
originalX=img.getWidth();
originalY=img.getHeight();
return img;
}
}
どなたか原因に心当たりのある方、よろしくお願いいたします。
なお、画像はインターネット上での拾いものです。書かれた方には感謝いたします。
お礼
ありがとうございました。一度確認してみます!!!