पर क्लिक किया गया है मुझे अपने जेबटन एक्शनलिस्टर के साथ समस्या है। मेरे पास एक अन्य वर्ग में परिभाषित किया गया है() विधि जिसे मेरी जीयूआई में परिवर्तन की श्रृंखला बनाता है।जेबटन एक्शन लिस्टनर - जेबीटन के बाद जीयूआई अपडेट
public void doTheCleaning(){
//change image icon
//had thread.sleep here
//insert to text area
//had thread.sleep here
//etc
}
फिर एक और कक्षा में, मैं कक्षा मेरी doTheCleaning() विधि युक्त instantiated और मेरे ActionListener मेरी jbutton इस तरह लिखा के लिए मेरे actionperformed() विधि के साथ लिखा था:
public void actionPerformed(ActionEvent e){
//some code
//newClass.doTheCleaning();
}
मुझे पता है कि addActionListener() और सामान जैसे आराम करने के लिए इस बारे में कोई सवाल करने की आवश्यकता नहीं है। मेरी चिंता यह है कि मेरे जीयूआई में किए गए सभी परिवर्तन जो करते समय किया जाता है TheCleaning() विधि को बटन क्लिक करने के बाद ही लागू किया जाता है। जब ऐसा होता है, तो मेरे लेबल और टेक्स्टरेरा में हुए परिवर्तनों के बीच उत्तराधिकार दिखाया नहीं गया था। कोड ठीक काम करता है अगर मैंने इसे सीधे अपने परीक्षक वर्ग में बुलाया लेकिन इसे एक्शनपरफॉर्म विधि के अंदर बुलाकर केवल मेरे जीयूआई की अंतिम स्थिति दिखाती है। मुझे यह दिखाने की ज़रूरत है कि कौन सा तत्व पहले बदल गया है, फिर अगला क्या है, और इसी तरह।
जब मैं जेबटन पर क्लिक करता हूं तो इन परिवर्तनों की आवश्यकता होने पर मुझे यह कैसे प्राप्त हो सकता है?
** मैं अभी तक जावा में जीयूआई करने के साथ इतना अच्छा नहीं हूं। iIhope आप मेरे कोड देने के बिना मेरे बिंदु समझ गए। लेकिन अगर आवश्यक हो तो मैं कर सकता था। धन्यवाद।
क्या आपका मतलब है कि आपके पास लेबल और टेक्स्टरेस में कई बदलाव हैं और आप चाहते हैं कि उपयोगकर्ता प्रत्येक चरण को देखकर एक-एक करके हो? – darrenp
आसान पढ़ने के लिए, कृपया वर्तनी नियमों के साथ चिपके रहें (वाक्य में पहला अक्षर पूंजीकृत होना चाहिए :-) – kleopatra
अपने जीयूआई कोड के अंदर 'थ्रेड.sleep (...)' जैसे कॉल का उपयोग न करें। इसके बजाय इस उद्देश्य के लिए [javax.swing.TImer] (http://docs.oracle.com/javase/tutorial/uiswing/misc/timer.html) का उपयोग करें, हो सकता है कि आप अपनी सामग्री को ईडीटी - इवेंट डिस्पैच थ्रेड पर अपडेट न करें , यह आपकी मदद कर सकता है :-) –