paint()メソッドが意図せずに2回呼び出される一般的な理由はありますか?Javaアプレットのpaint()が何の理由もなく2回呼び出されました
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がなぜ2回実行されるのか分かりません(例えば[1] [2]と[2] [3]ヌルそれが印刷されます:
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);