मैं स्विंग करने के लिए नया हूं, किसी भी मदद की सराहना की।स्विंग घटकों को सही ढंग से अद्यतन कर रहा है?
कोड के इस टुकड़े में मैं चेहरे पर एक कार्ड बदल रहा हूं, अगर यह पता चला कि वे मेल नहीं खाते हैं तो मैं उन्हें फिर से चेहरे को वापस चालू करना चाहता हूं।
पल क्या हो रहा है पर: 1. जब क्लिक पहले कार्ड 2. से अधिक हो जाती है जब एक दूसरे कार्ड दो बातें या तो क्लिक किया जाता है पर हो (क) अगर वे एक ही कर रहे हैं वे दोनों रहते हैं जो मुझे (बी) यदि वे समान नहीं हैं तो मैं दूसरे कार्ड को कभी भी नहीं देखता क्योंकि यह तुरंत कार्ड के पीछे फिर से प्रदर्शित करता है (और पिछले कार्ड के पीछे भी मेरी विधि में परिभाषित किया गया है)।
मैंने सोचा कि नींद टाइमर डालने से दूसरे कार्ड को वापस चालू करने से पहले समय के लिए प्रदर्शित किया जा सकता है लेकिन ऐसा नहीं होता है।
मैंने contentPane.revalidate() का उपयोग करने का प्रयास किया; & contentPane.repaint(); लेकिन यह कुछ भी नहीं बदलता है।
मैं कुछ सांत्वना आउटपुट में डाल दिया है:
Console output:
Card: 0 set
Card: 6 set
Sleeping now
Card: 6 unset
Card: 0 unset
से ऊपर है जब दो कार्ड जो मेल नहीं खाते
@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");
}
}
}
धन्यवाद, बहुत सहायक और बहुत ही जानकारीपूर्ण उत्तर। मुझे स्विंग की बुनियादी अवधारणाओं पर कुछ और पढ़ना होगा – Ron