Sto provando a creare un Mastermind in Java. Il codice non è molto difficile, ma voglio avere un'interfaccia molto buona. Ho un JPanel che prendono tutta la mia JFrame, e dipingo questo JPanel con surchargind repaint()
metodo:Dipingere in una parte di JPanel senza ridipingere il resto
public void paint(Graphics g) //méthode permettant de dessiner les éléments sur la carte
{
super.paintComponents(g);
Graphics gr;
gr = MasterMindPane.getGraphics();
img = MasterMindPane.getToolkit().getImage("images/plateau4-8.jpg");
gr.drawImage(img, 0, 0, 600, 720, this);
gr = bouleRougePane.getGraphics();
img = bouleRougePane.getToolkit().getImage("images/bouleRouge.png");
//gr.drawImage(img, 535, 303, 45, 45, this);
gr.drawImage(img, 0, 0, 45, 45, this);
gr = bouleOrangePane.getGraphics();
img = bouleOrangePane.getToolkit().getImage("images/bouleOrange.png");
//gr.drawImage(img, 535, 303, 45, 45, this);
gr.drawImage(img, 0, 0, 45, 45, this);
}
Quando clicco su una sola immagine, che hanno un pannello, traggo un cerchio giallo del genere:
private void bouleRougePaneMouseClicked(java.awt.event.MouseEvent evt) {
Graphics2D g2d = (Graphics2D) MasterMindPane.getGraphics();
for(int i = 0; i<4; i++)
{
g2d.setColor(Color.ORANGE);
g2d.setStroke(new BasicStroke(3));
g2d.drawOval(78+i*70, 106+etape*50, 35, 35);
}
}
E quando seleziono un foro, voglio eliminare il cerchio, che indica solo dove il giocatore può giocare.
Ma non so come eliminare il cerchio, o ridipingere solo una parte della mia immagine, perché costa molto ridipingere tutto.
Hai provato a invocare il metodo 'repaint (Rectangle r)'? –
Sì, ho provato ma ridisegno (Rettangolo r) cancella tutte le mie immagini e ridisegno solo la parte specificata nel rettangolo – algelos
Cosa vuoi dire cancella tutte le tue immagini? Lo scopo dell'uso di repaint (Rectangle r) è di avere solo quella parte di ridipingere e questo è quello che stai chiedendo nella tua domanda; Devo essere frainteso qualcosa qui. Altra domanda, che cosa è 'MasterMindPane.getGraphics()'? Perché non usi il 'Graphics g' fornito? –