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(); } }
为什么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上面就可以了,还有主函数哦~~