public class GraphicsBoard extends LayerUI {
String picPath = "pictures/";
String[] fileName = { "cards.png", "BlackJackBoard.png" };
ClassLoader cl = GraphicsBoard.class.getClassLoader();
URL imgURL[] = new URL[2];
Toolkit tk = Toolkit.getDefaultToolkit();
Image imgCards, imgBG;
public GraphicsBoard() throws Exception {
for (int x = 0; x < 2; x++)
imgURL[x] = cl.getResource(picPath + fileName[x]);
imgCards = tk.createImage(imgURL[0]);
imgBG = tk.createImage(imgURL[1]);
}
public void paintComponent(Graphics g) {
g.drawImage(imgBG, 0, 0, 550, 450, 0, 0, 551, 412, this);
}
}
これが、blackjacゲームのim作成の下部のコードです。ただし、Eclipseでは、paintComponentのdrawImageに下線が引かれているため、修正方法がよくわかりません。カーソルを合わせると、
The method drawImage(Image, int, int, int, int, int, int, int, int, ImageObserver) in the type Graphics is not applicable for the arguments (Image, int, int, int, int, int, int, int, int, GraphicsBoard)
そして私に与えられたオプションは
Cast argument 'this' to 'ImageObserver'
と
Let 'GraphicsBoard' implement 'ImageObserver'
実行すると、上のレイヤー(基本的にボタン付きのJPanel)は透明ではありません。
これは、JLayerをフレームに追加するために使用するものです。
OverBoard overLay = new OverBoard();
GraphicsBoard graphicsBG = new GraphicsBoard();
add(new JLayer(overLay, graphicsBG));