में एक जेपी प्रोग्रेसबार अपडेट मान बनाने में समस्या कुछ प्रोग्राम करने के दौरान लगातार एक विधि के भीतर प्रगति बार मानों को अद्यतन करने के लिए अपना प्रोग्राम प्राप्त करने का प्रयास कर रहा हूं। हालांकि यह अंत तक नहीं होता है, और यूआई फ्रीज होता है।लूप (थ्रेडेड)
मेरी समस्याओं के साथ समान प्रश्नों को देखने के बाद, मैंने स्वीकार किए गए समाधान (धागे का उपयोग करके) को लागू करने की कोशिश की, हालांकि मैं इसे सही तरीके से काम नहीं कर सकता। ऐसा लगता है जैसे वे वहां नहीं हैं।
मेरे कार्यक्रम में कई कक्षाएं, Main
स्वचालित रूप से JFrame डिजाइन मोड पर NetBeans द्वारा बनाई गई एक होने के मौजूद है, इसलिए इस तरह static void main
और public Main
के रूप में कुछ चीजें हैं जो वास्तव में इसकी कुछ सामग्रियों के बारे में सुनिश्चित नहीं कर रहा हूँ कर रहे हैं। मैं अपने धागे कार्यान्वयन के साथ, उन विधियों के स्निपेट रखूंगा।
public class Main extends javax.swing.JFrame implements ActionListener, Runnable{
// I added implements ActLis, Runn.....
...
static Main _this; // I included this variable
...
public static void main(String args[]) {
Main m = new Main(); // Added by me
new Thread(m).start(); // Added by me
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Main().setVisible(true);
}
});
}
...
public Main() {
initComponents();
_this = this; // Added by me
}
...
// I also included these 2 methods in the class
public void actionPerformed(ActionEvent e) {
synchronized(this){
notifyAll();
}
}
public void run() {
try{synchronized(this){wait();}}
catch (InterruptedException e){}
progressBar.setValue(50);
}
...
private void buttonPressed(java.awt.event.MouseEvent evt) {
for(int i=0; i<=100; i++) {
for(int j=0; j<=5; j++) {
// does some work
}
run();
}
}
सभी चीजें हैं जो मैं I added...
के रूप में टिप्पणी की चीजें हैं जो मैं ट्यूटोरियल और जवाब मैं ऑनलाइन देखा है के अनुसार putted रहे हैं, लेकिन कुछ भी नहीं काम करने लगता है और यह लगता है जैसे मैं एक लाख विभिन्न संयोजनों के करीब की कोशिश की है ..
मदद करने के लिए अग्रिम धन्यवाद।
+1 अच्छे उदाहरण; '@ ओवरराइड' एनोटेशन जोड़ने पर विचार करें। – trashgod
वाह, दोस्त वास्तव में यह हर समय मेरे लिए बहुत मायने रखता है और सोचा कि आपने मुझे थ्रेडिंग को समझने और समस्या को हल करने में मदद की है। मुझे यह कहते हुए खुशी हो रही है कि मैंने आपके पहले उदाहरण का उपयोग करके इसे करने में कामयाब रहा है। मैं कहां ** ट्रिपल ** सबसे अच्छा फिक्रिंग उत्तर कहां टिक सकता हूं? – Fabian