2013-09-24 7 views
5

जावा स्विंग एप्लिकेशन शुरू करने का सबसे अच्छा तरीका क्या है? शायद ऐसा करने का एक और तरीका है।एक स्विंग एप्लिकेशन शुरू करने के लिए सर्वोत्तम अभ्यास

मैं जानना चाहता हूं कि मुझे एप्लिकेशन (सेकेंड संभावना) शुरू करने या नहीं (पहली संभावना) शुरू करने के लिए स्विंग यूटिलिटीज क्लास का उपयोग करना है या नहीं।

public class MyFrame extends JFrame { 

public void createAndShowGUI() { 
    this.setSize(300, 300); 
    this.setDefaultCloseOperation(EXIT_ON_CLOSE); 
    // add components and stuff 
    this.setVisible(true); 
} 

public static void main(String[] args) { 

    // First possibility 
    MyFrame mf = new MyFrame(); 
    mf.createAndShowGUI(); 

    // Secound possibility 
    SwingUtilities.invokeLater(new Runnable() { 

     @Override 
     public void run() { 
      MyFrame mf = new MyFrame(); 
      mf.createAndShowGUI(); 
     } 
    }); 
} 

}

उत्तर

7

केवल दूसरा तरीका सही है। स्विंग घटकों को केवल ईवेंट प्रेषण धागे में बनाया और एक्सेस किया जाना चाहिए। concurrency in swing देखें। प्रासंगिक उद्धरण:

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

तो हाँ, आपको invokeLater() का उपयोग करने की आवश्यकता है।

+0

आपके उत्तर के लिए धन्यवाद। आपके उत्तर में लिंक बहुत उपयोगी है! – Charmin

+1

@ माइक आपका स्वागत है। वह, और बाकी स्विंग ट्यूटोरियल वास्तव में पढ़ने के लायक हैं। – kiheru

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