public class Panel extends JPanel { @Override public void paint (Graphics g) { Graphics2D g2 = (Graphics2D) g; w = nx*30; // ширина панелі h = ny*30; // висота панелі BufferedImage bi = (BufferedImage) createImage(w, h);// буфер зображення Graphics2D big = bi.createGraphics(); // і його графічний контекст big.setColor(new Color(0,128,0)); // колір тла big.fillRect(0, 0, w, h); // зображення тла big.setStroke(new BasicStroke(3)); big.setColor(new Color(200,200,200)); // колір меж for (j=0; j<=ny; j++) big.drawLine( 0,j*30,nx*30, j*30); for (k=0; k<=nx; k++) big.drawLine(k*30, 0, k*30,ny*30); for (j=1; j<=ny; j++) for (k=1; k<=nx; k++) if (d[j][k]) { big.setColor(Color.white); // колір тла відкритої клітини big.fillRect((k-1)*30+2, (j-1)*30+2, 27, 27); big.setColor(c[a[j][k]]); // колір цифри відкритої клітини big.setFont(f); if (a[j][k]<9) {big.drawString(Integer.toString(a[j][k]),(k-1)*30+7,j*30-6);} else { if ((j==j0) && (k==k0)) { big.setColor(Color.red);} else { big.setColor(c[9]);} big.drawString("●", (k-1)*30+4 , j*30-8); } } g2.drawImage(bi, 0, 0, this); // вивести зображення-буфер на экран } }