2013-11-03 7 views
5

मुझे जावा एफएक्स एप्लिकेशन थ्रेड के साथ कोई समस्या है।जावाफैक्स एप्लिकेशन थ्रेड कैसे काम करता है?

showMenu(); 
//Contoller which waits for action(pressing button)... 
showLoadingPic(); 
Thread.sleep(2000); 
showMap(); 

समस्या यह है कि नींद खिड़की जो showMenu(), showLoadingPic(), बिल्कुल नहीं दिखाया है और showMap में अंत खिड़की पर (प्रदर्शित किया जाता है में होता है) है: यहाँ एक छद्म कोड है दिखाया गया है।

शोलोडिंगपिक में दृश्य एक प्रगति पट्टी है जो 2 सेकंड चलाता है जो थ्रेड.sleep (2000) के समान होता है।

तो ऐसा लगता है जैसे javafx अनुप्रयोग थ्रेड ब्लॉक showLoadingPic() और showLoadingPic() पृष्ठभूमि में चलता है।

किसी मेरी मदद कर सकते इसे ठीक करने के ??

अग्रिम धन्यवाद!

उत्तर

9

एक जावा FX घटना प्रेषण धागा है, जो सभी जीयूआई संबंधित कार्यों को संभाल नहीं है। आपको इस धागे में सभी यूआई घटकों को अपडेट करना होगा। Thread.sleep जैसे लंबे समय से चलने वाले कार्यों को इस थ्रेड में कभी भी निष्पादित नहीं किया जाना चाहिए, क्योंकि खिड़कियां लटकाएंगी, और जीयूआई जमे हुए होगा।

एप्लिकेशन मुख्य थ्रेड में अपने सभी कोड निष्पादित करें, और Platform.runLater पर कॉल करके जावाएफएक्स थ्रेड में केवल जीयूआई कार्य करें। इस विषय पर

संदर्भ:

संबंधित मुद्दे