Sono nuovo nello swing, ogni aiuto è apprezzato.Aggiornamento componenti swing correttamente?
In questo pezzo di codice sto girando una carta a faccia in su, se risulta che non corrispondono, voglio che girino nuovamente a faccia in giù.
Al momento ciò che sta accadendo: 1. se cliccato la prima carta gira 2. quando una seconda scheda si fa clic su una delle due cose accadono (a) se sono la stessa entrambi rimanere sempre che è cosa voglio (b) se non sono gli stessi, non vedo mai la seconda carta perché rivisita immediatamente il retro della carta (e il retro della carta precedente anche come definito nel mio metodo).
Ho pensato di inserire il timer di sospensione per mantenere la seconda scheda visualizzata per un periodo di tempo prima di tornare indietro ma non è così.
Ho tentato di utilizzare contentPane.revalidate(); & contentPane.repaint(); ma non cambia nulla.
ho messo in alcune uscite per console:
Console output:
Card: 0 set
Card: 6 set
Sleeping now
Card: 6 unset
Card: 0 unset
sopra è l'uscita della console risultante quando si clicca due carte che non corrispondono
@Override
public void actionPerformed(ActionEvent e)
{
String buttonPressed = e.getActionCommand();
int pos = Integer.valueOf(buttonPressed);
action = Control.model.ReceiveCardsTurned(pos);
keypadArray[pos].setIcon(myIcons[pos]);
System.out.println("Card: "+pos+" set");
currentTime.setText("" + Control.model.time);
currentScore.setText("" + Control.model.score);
//contentPane.revalidate();
//contentPane.repaint();
if(Control.model.twoCardsTurned == false)
{
if (action == "unturn")
{
System.out.println("Sleeping now");
try
{
Thread.sleep(1000);
}
catch (InterruptedException e1)
{
e1.printStackTrace();
}
keypadArray[pos].setIcon(back);
keypadArray[Control.model.lastCard].setIcon(back);
System.out.println("Card: "+pos+" unset");
System.out.println("Card: "+Control.model.lastCard+" unset");
}
}
}
Grazie ancora, molto risposta utile e molto informativa. Dovrò fare ancora un po 'di lettura sui concetti base dello swing – Ron