我需要更新我的图形,其中有矩形。在每一步,我都需要突出显示并修改其中一些的状态。 但现在在我的代码中,对于每个repaint(),它会绘制一个全新的图片。 我已经阅读了类似的问题: Keeping draw graphics - removing super.paintComponent,这无法解决我的问题。 下次它调用repaint()时,那些矩形消失了。这意味着它抹去了流行的图形。 请帮忙! 这是代码:(“firstPaint = false”就在下一个repaint()之前)
@Override
protected void paintComponent(Graphics g2)
{
super.paintComponent(g2);
final Graphics2D g = (Graphics2D) g2.create();
try{
if(firstPaint){
int status;
g.setColor(Color.BLACK);
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < columns; j++)
{
status = current[i][j];
if(status == 1)
{
g.fillRect(j * 20, i * 20, 20, 20);
}
}
}
}
if(executeResult == 2){
g.setColor(Color.BLUE);
for(Cell c:highlightedCells){
g.drawRect(c.j * 20, c.i * 20, 20, 20);
}
}
if(executeResult == 1){
g.setColor(Color.RED);
for(Cell c:highlightedCells){
g.fillRect(c.j * 20, c.i * 20, 5, 5);
}
}
}
finally{
g.dispose();
}
}