gpt4 book ai didi

java - 找不到符号方法drawImage(SlidingBlockModel, int, int, int, int, )

转载 作者:行者123 更新时间:2023-12-02 08:22:06 26 4
gpt4 key购买 nike

我正在尝试制作一个 slider 游戏。在这个类中,我使用 Graphics 对象 g2 的 drawImage 方法来显示“拼图”的 block 。但在绘制类方法中,我收到此错误:找不到符号方法drawImage(SlidingBlockModel, int, int, int, int, )。有什么建议么?感谢您花时间阅读本文。先感谢您。 :)

佐伊

代码如下:

import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
import java.awt.image.*;
import java.awt.Graphics.*;

class SlidingBlockPanel extends JPanel implements MouseListener
{
int numCols;
int numRows;

SlidingBlockModel SBModel;

public static void main(String[] args)
{
SlidingBlockFrame w = new SlidingBlockFrame();
w.setVisible(true);
}


public SlidingBlockPanel(int nc, int nr)
{
numCols = nc;
numRows = nr;
addMouseListener(this);
SBModel= new SlidingBlockModel(numCols, numRows, "puzzle.jpg");
}
int getCol(int x)
{
return x*numCols/getWidth();
}
int getRow(int y)
{
return y*numRows/getHeight();
}

public void mouseReleased(MouseEvent event)
{
}
public void mousePressed(MouseEvent event)
{
}
public void mouseClicked(MouseEvent event)
{
int thisCol = getCol(event.getX());
System.out.println
("you clicked in column " + thisCol);

}
public void mouseEntered(MouseEvent event)
{
}
public void mouseExited(MouseEvent event)
{
}


Rectangle getRect(int thisCol, int thisRow)
{
// if input is out of range, return "null"
if(thisCol <0 || thisRow < 0)
return null;
if(thisCol>=numCols || thisRow>=numRows)
return null;

// otherwise, make and return the Rectangle
int w = getWidth()/numCols;
int h = getHeight()/numRows;

int x = thisCol*w;
int y = thisRow*h;

Rectangle myRect = new Rectangle(x,y,w,h);
return myRect;
}

public void paint(Graphics g)
{
g.setColor(Color.gray);
g.fillRect(0,0,getWidth(), getHeight());
g.setColor(Color.black);


Graphics2D g2 = (Graphics2D)g;
// we'll use Graphics2D for it's "drawImage" method this time

for (int i = 0;i<numCols;i++)
{
for(int j = 0;j<numRows;j++)
{

SBModel.getSubimage(i, j);
Rectangle r = getRect(i, j);
g2.drawImage(SBModel,r.x,r.y,r.width,r.height,null);


}
}

}


}

最佳答案

这意味着您的 SBModel 不是 java.awt.Image 类型。

尝试以这种方式更改您的类 SlidingBlockModel:

SlidingBlockModel extends Image {}

关于java - 找不到符号方法drawImage(SlidingBlockModel, int, int, int, int, <nulltype>),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5285502/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com