java编写的俄罗斯方块小程序,Jpanel怎么设置为自己想要的图片,我的代码实现了但把方块掩盖了,求修改
怎么把游戏区和下一个方块的背景换成想要的图片并且不影响操作啊,这是我是用的代码,没有错误但游戏区看不到方块了,,求大神指教classGameCanvasextendsJP...
怎么把游戏区和下一个方块的背景换成想要的图片并且不影响操作啊,这是我是用的代码,没有错误但游戏区看不到方块了,,求大神指教
class GameCanvas extends JPanel
{
private Color backColor = Color.WHITE, frontColor = Color.green; //设置游戏区和预示区的背景颜色
private int rows, cols, score = 0, scoreForLevelUpdate = 0;
private ErsBox[][] boxes;
private int boxWidth, boxHeight;
public GameCanvas(int rows, int cols)
{
this.rows = rows;
this.cols = cols;
boxes = new ErsBox[rows][cols];
for (int i = 0; i < boxes.length; i++)
{
for (int j = 0; j < boxes[i].length; j++)
{
boxes[i][j] = new ErsBox(false);
}
}
}
public GameCanvas(int rows, int cols,
Color backColor, Color frontColor)
{
this(rows, cols);
this.backColor = backColor;
this.frontColor = frontColor;
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.setColor(frontColor);
for (int i = 0; i < boxes.length; i++)
{
for (int j = 0; j < boxes[i].length; j++)
{
g.setColor(boxes[i][j].isColorBox() ? frontColor : backColor);
g.fill3DRect(j * boxWidth, i * boxHeight,
boxWidth, boxHeight, true);
}
}
try {
BufferedImage img = ImageIO.read(JPanel.class.getResource("11.jpg"));
g.drawImage(img, 0, 0,getRows(),getCols(), null);
} catch (IOException e) {
e.printStackTrace();
}
} 展开
class GameCanvas extends JPanel
{
private Color backColor = Color.WHITE, frontColor = Color.green; //设置游戏区和预示区的背景颜色
private int rows, cols, score = 0, scoreForLevelUpdate = 0;
private ErsBox[][] boxes;
private int boxWidth, boxHeight;
public GameCanvas(int rows, int cols)
{
this.rows = rows;
this.cols = cols;
boxes = new ErsBox[rows][cols];
for (int i = 0; i < boxes.length; i++)
{
for (int j = 0; j < boxes[i].length; j++)
{
boxes[i][j] = new ErsBox(false);
}
}
}
public GameCanvas(int rows, int cols,
Color backColor, Color frontColor)
{
this(rows, cols);
this.backColor = backColor;
this.frontColor = frontColor;
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.setColor(frontColor);
for (int i = 0; i < boxes.length; i++)
{
for (int j = 0; j < boxes[i].length; j++)
{
g.setColor(boxes[i][j].isColorBox() ? frontColor : backColor);
g.fill3DRect(j * boxWidth, i * boxHeight,
boxWidth, boxHeight, true);
}
}
try {
BufferedImage img = ImageIO.read(JPanel.class.getResource("11.jpg"));
g.drawImage(img, 0, 0,getRows(),getCols(), null);
} catch (IOException e) {
e.printStackTrace();
}
} 展开
2个回答
展开全部
.setBackground(Color.yourChoseColor);
直接设置小块的背景色不就行了。
直接设置小块的背景色不就行了。
追问
想要一整张图片作为背景?求指导
追答
好吧,我告诉你如果你想呀让俄罗斯方块整个用图片显示,那么你就要自己去做那种俄罗斯方块样式的图片,但是SWING好像只接受方形的图片,所以你要自己重写JPANEL的内部方法。总之很麻烦。
当然你也可以使用point进行绘画,但是那样还是方的依旧很麻烦。
不懂你为什么会有这个想法?设置背景色这种既简单又高效的方法却不用。
你也可以设置四种颜色的小方块,将他们放在JPANEL里通过组合形成俄罗斯方块的样式。
展开全部
楼主自己作图然后加到Jpanel里面呗= =
追问
不懂??????想要一整张图片作为背景?求指导
追答
喵 。。单解释P图链接到Panel是一种回避java2D图形库视觉效果不理想的方法= = 学习使用面向对象的方法设计哪怕像俄罗斯方块这样的小游戏都是具有意义的 推荐楼主学习java吧小翼同学用面向对象做的俄罗斯方块视频 加油楼主
以下链接http://tieba.baidu.com/p/2039621772?pn=1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询