java画图问题
程序代码:
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
//游戏画布类
public class GameWinPanel extends JPanel{
int [][] scrArr;
int rowNum; //行数
int columnNum; //列数
public GameWinPanel(){
rowNum = 14;
columnNum = 10;
scrArr = new int[rowNum][columnNum];
for (int i=0; i<rowNum; i++)
for (int j=0; j<columnNum; j++)
scrArr[i][j] = 0;
}
public void paint(Graphics g)
{
super.paint(g);
g.draw3DRect(0, 0, 301, 421, false);
for (int i=0; i<14; i++)
for (int j=0; j<10; j++)
drawUnit(i, j, scrArr[i][j]);
}
public void drawUnit(int row, int col, int type){
Graphics g = getGraphics();
switch(type){
case 0:g.fill3DRect(col*30+1, row*30+1, 30, 30, false);break;
case 1:g.fill3DRect(col*30+1, row*30+1, 30, 30, true);break;
}
g.dispose();
}
}
import java.awt.Graphics;
import javax.swing.JPanel;
//游戏画布类
public class GameWinPanel extends JPanel{
int [][] scrArr;
int rowNum; //行数
int columnNum; //列数
public GameWinPanel(){
rowNum = 14;
columnNum = 10;
scrArr = new int[rowNum][columnNum];
for (int i=0; i<rowNum; i++)
for (int j=0; j<columnNum; j++)
scrArr[i][j] = 0;
}
public void paint(Graphics g)
{
super.paint(g);
g.draw3DRect(0, 0, 301, 421, false);
for (int i=0; i<14; i++)
for (int j=0; j<10; j++)
drawUnit(i, j, scrArr[i][j]);
}
public void drawUnit(int row, int col, int type){
Graphics g = getGraphics();
switch(type){
case 0:g.fill3DRect(col*30+1, row*30+1, 30, 30, false);break;
case 1:g.fill3DRect(col*30+1, row*30+1, 30, 30, true);break;
}
g.dispose();
}
}
为什么drawUnit这个函数调用不了导致画不了图?如果把
switch(type){
case 0:g.fill3DRect(col*30+1, row*30+1, 30, 30, false);break;
case 1:g.fill3DRect(col*30+1, row*30+1, 30, 30, true);break;
}
直接用,就是不用函数的形式来调用,程序可以运行的,跪求各位高手帮忙解决。
这是一部分代码而已,如果要调试可以新建一个窗口类JFrame,把这个类添加到JFrame上面就可以了,还有主函数哦~~
----------------解决方案--------------------------------------------------------
高手都在哪里啦~~~???
----------------解决方案--------------------------------------------------------
drawUnit(i, j, scrArr[i][j]);//你调用的实参是数组
public void drawUnit(int row, int col, int type)//而你定义的行参。。。。
----------------解决方案--------------------------------------------------------
回复 3楼 navy2013
scrArr[i][j]这个传进去的是一个int类型的数,如果传一个数组是drawUnit(i,j,scrArr);这样传吧~有没有解决办法~~??这问题烦了我很久咯~ ----------------解决方案--------------------------------------------------------
没人能解答么?
----------------解决方案--------------------------------------------------------