Sto lavorando su una slot machine in Java e finora ho creato un pulsante che genera in modo casuale due immagini. Il mio codice viene compilato ma quando lo eseguo, tutte le cose che ho inserito nel metodo paint non vengono visualizzate. C'è qualcosa che mi manca? Grazie per il tuo aiuto ed ecco parte del mio codice.Come utilizzare il metodo di vernice in un JPanel
public void paint(Graphics g) {
super.paintComponents(g);
g.drawString("Int 1 is" + int1,30,30);
g.drawString("Int 2 is" + int2,30,80);
switch (int1) {
case 0:
g.setColor(Color.white);
g.fillRect(300,300,300,500);
g.drawImage(img, 300, 500, this);
break;
case 1:
g.setColor(Color.white);
g.fillRect(300,300,300,500);
g.drawImage(img2,300,500,this);
break;
case 2:
g.setColor(Color.white);
g.fillRect(300,300,300,500);
g.drawImage(img3,300,500,this);
break;
case 3:
g.setColor(Color.white);
g.fillRect(300,300,300,500);
g.drawImage(img4,300,500,this);
break;
case 4:
g.setColor(Color.white);
g.fillRect(300,300,300,500);
g.drawImage(img5,300,500,this);
break;
case 5:
g.setColor(Color.white);
g.fillRect(300,300,300,500);
g.drawImage(img6,300,500,this);
break;
case 6:
g.setColor(Color.white);
g.fillRect(300,300,300,500);
g.drawImage(img7,300,500,this);
break;
case 7:
g.setColor(Color.white);
g.fillRect(300,300,300,500);
g.drawImage(img8,300,500,this);
break;
case 8:
g.setColor(Color.white);
g.fillRect(300,300,300,500);
g.drawImage(img9,300,500,this);
break;
case 9:
g.setColor(Color.white);
g.fillRect(300,300,300,500);
g.drawImage(img10,300,500,this);
break;
}
switch (int2) {
case 0:
g.setColor(Color.white);
g.fillRect(300,300,800,500);
g.drawImage(img, 800, 500, this);
break;
case 1:
g.setColor(Color.white);
g.fillRect(300,300,800,500);
g.drawImage(img2,800,500,this);
break;
case 2:
g.setColor(Color.white);
g.fillRect(300,300,800,500);
g.drawImage(img3,800,500,this);
break;
case 3:
g.setColor(Color.white);
g.fillRect(300,300,800,500);
g.drawImage(img4,800,500,this);
break;
case 4:
g.setColor(Color.white);
g.fillRect(300,300,800,500);
g.drawImage(img5,800,500,this);
break;
case 5:
\ g.setColor(Color.white);
g.fillRect(300,300,800,500);
g.drawImage(img6,800,500,this);
break;
case 6:
g.setColor(Color.white);
g.fillRect(300,300,800,500);
g.drawImage(img7,800,500,this);
break;
case 7:
g.setColor(Color.white);
g.fillRect(300,300,800,500);
g.drawImage(img8,800,500,this);
break;
case 8:
g.setColor(Color.white);
g.fillRect(300,300,800,500);
g.drawImage(img9,800,500,this);
break;
case 9:
g.setColor(Color.white);
g.fillRect(300,300,800,500);
g.drawImage(img10,800,500,this);
break;
}
this.setVisible(true);
}
Quando si tratta di 'Swing', non si dovrebbe giocare con' metodo paint' per un tale compito. Invece di sovrascrivere il metodo 'paintComponent (...)' di alcuni 'JComponent/JPanel' per fare le cose relative alla pittura. Maggiori informazioni su [Esecuzione di disegni personalizzati] (https://docs.oracle.com/javase/tutorial/uiswing/painting/). Leggi la risoluzione dei problemi comuni, il primo problema risponderà a ciò che stai facendo male. Spero sia utile :-) –
Yikes, il tuo metodo 'paint' chiama' super.paintComponents (...) 'una cosa molto pericolosa da fare.Si prega di leggere le esercitazioni di pittura su questo come è tutto spiegato molto bene e concorda esattamente con ciò che @nIcEcOw afferma sopra. Mi piacerebbe semplicemente scambiare ImageIcons visualizzati in una JLabel. –
Vedere la modifica per rispondere. –