java applet paint_java applet中的paint()被无故两次调用

有一个常见的原因为什么paint()方法可能会被无意调用两次。我有以下代码:

public void paint(Graphics g)

{

//Graphics2D gg;

//gg=(Graphics2D) g;

drawMatrix(g);

}

private void drawMatrix(Graphics g) {

int side = 40;

hex hexagon=new hex();

for(int i = 0; i<9; i++)

for(int k = 0; k<9; k++){

g.setColor(Color.lightGray);

g.fill3DRect(i*side,k*side, side, side, true);

if (matrix[i][k]!=null){System.out.println("i is "+i+" k is "+k);

g.setColor(Color.black);hexagon.DrawHexfromMatrix(g, i, k, Color.black);}

}

}

hex是扩展多边形的类(用于建模六边形图形),而DrawHexfromMatrix是从绘制的矩阵的索引绘制六边形的函数(将六边形放入矩阵的槽中)。如果您认为有帮助,我可以提供整个代码,但是现在我不明白为什么system.out.println会执行两次。(例如,if

[1] [2]和[2] [3]不能执行null它将打印:

i is 1 k is 2

i is 2 k is 3

i is 1 k is 2

i is 2 k is 3

我认为这也会影响我的绘图,因为有时虽然[i] [k]中存在一个元素,但并未绘制。(矩阵是十六进制的矩阵)。

以后的编辑:是否有可能g.fill3DRect(i * side,k * side,side,side,true);

覆盖我正在尝试用hexagon.DrawHexfromMatrix(g,i,k,Color.black)绘制的六边形; ???

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值