java程序运行图形_java – 为什么我的图形代码不运行,除非代码块中有System.out.println?...

我有这个方法paint()接收Graphics2D参数.发生的奇怪事情是,除非存在System.out.println(我在下面的块中注释掉),否则画布不会绘制任何内容.

public class Map{

public void paint(Graphics2D g){

//fill background to black

g.setColor(Color.black);

g.fillRect(0, 0, TILE_SIZE*WIDTH, TILE_SIZE*HEIGHT);

//draw the tiles and buildings

for(int i=0;i

for(int j=0;j

if(map[j][i] == CLEAR){

//System.out.println("");

g.setColor(Color.gray);

g.fillRect(i*TILE_SIZE, j*TILE_SIZE, TILE_SIZE, TILE_SIZE);

g.setColor(Color.red);

g.drawRect(i*TILE_SIZE, j*TILE_SIZE, TILE_SIZE, TILE_SIZE);

}

}

}

}

}

在这里,我使用BufferStrategy在Canvas上绘制并将其添加到Frame.这个方法在Map类中,它将从BufferStrategy的getDrawGraphics()方法传递一个Graphics2D(我希望很多人都熟悉这些东西来理解我在做什么).

public class MapTest extends Canvas{

private Map map;

public MapTest(){

Frame frame = new Frame("MAP");

frame.add(this);

frame.setVisible(true);

createBufferStrategy(2);

strategy = getBufferStrategy();

//draw the map

Graphics2D g = (Graphics2D) strategy.getDrawGraphics();

//g.translate(100, 100);

map.paint(g);

g.dispose();

strategy.show();

}

}

此代码来自Canvas类.正如您所看到的,paint()方法与Canvas类(我将其命名为GameTest)分开.因此,如果我注释掉println语句,那么画布中不会显示图形,否则会正确显示.任何人都可以帮助我???

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值