2011-10-02 13 views
13

मैं जावा का उपयोग कर प्रोजेक्ट कर रहा हूं और उस JFrame पर विशेष बटन पर क्लिक करने के बाद मुझे पूरे JFrame को पुनः लोड करने की आवश्यकता है। यह कैसे करना है?मैं जेएफआरएएम को रीफ्रेश या पुनः लोड कैसे कर सकता हूं?

+3

'रीफ्रेश' से आपका क्या मतलब है? क्या यह उन सभी घटकों को वापस लौटाता है जब वे पहले फ्रेम में डालते थे, 'घटकों को बदलते हैं', कुछ और? –

+0

क्या आप रनटाइम पर जेकंपोनेंट जोड़ते हैं/हटाते हैं, या आकार बदलते हैं, फिर से लेआउट के लिए आवश्यक ..., – mKorbel

+0

आप जेएफआरएएम के साथ वास्तव में क्या कर रहे हैं। कृपया इसे elobrate। ? –

उत्तर

23

SwingUtilities.updateComponentTreeUI(frame); 

प्रयास करें यह अभी भी ऊपर चरण कोशिश

frame.invalidate(); 
frame.validate(); 
frame.repaint(); 
+4

-1 अपडेट के लिए कॉम्पोनेंट ट्रीयूआई: यह लगभग ** हमेशा ** करना गलत काम है (यह यूई-प्रतिनिधियों को दोबारा स्थापित कर रहा है) जब सबसे संभावित लक्ष्य केवल डेटा को पुनः लोड कर रहा है। – kleopatra

+1

_reload frame_ एक तकनीकी शब्द नहीं है और जो भी इसका मतलब है, अपडेट करें कॉम्पोनेंट ट्री ** नहीं ** उत्तर है। असल में, सवाल यह है कि उत्तरदायी होने के लिए बहुत ही विशिष्ट नहीं है, इसलिए – kleopatra

0

आप इस कोड

this.setVisible(false); //this will close frame i.e. NewJFrame 

new NewJFrame().setVisible(true); // Now this will open NewJFrame for you again and will also get refreshed 
+6

को बंद करने के लिए वोट दिया गया बुरा प्रश्न खराब उत्तरों को आकर्षित करता है (यही कारण है कि प्रश्न को बंद करने का सुझाव दिया गया - असफल ;-) * नहीं * - जो भी सवाल में असली समस्या है, एक नया फ्रेम बनाना * नहीं * समाधान है। आप अपने घर को तोड़ नहीं पाएंगे क्योंकि इसे कुछ नए पेंट की ज़रूरत है, है ना? – kleopatra

+0

@ क्लोपेट्रा नहीं वह नहीं करेगा। – Ibrahim

0

का उपयोग करना चाहिए इस कोड का प्रयास करें पूरा करने के बाद तो काम नहीं करता है। मुझे भी एक ही समस्या का सामना करना पड़ा, लेकिन कुछ मैंने इसे कैसे हल किया।

public class KitchenUserInterface { 

    private JFrame frame; 
    private JPanel main_panel, northpanel , southpanel; 
    private JLabel label; 
    private JButton nextOrder; 
    private JList list; 

    private static KitchenUserInterface kitchenRunner ; 

    public void setList(String[] order){ 
     kitchenRunner.frame.dispose(); 
     kitchenRunner.frame.setVisible(false); 
     kitchenRunner= new KitchenUserInterface(order); 

    } 

    public KitchenUserInterface getInstance() { 
     if(kitchenRunner == null) { 
      synchronized(KitchenUserInterface.class) { 
       if(kitchenRunner == null) { 
        kitchenRunner = new KitchenUserInterface(); 
       } 
      } 
     } 


     return this.kitchenRunner; 
    } 

    private KitchenUserInterface() { 


     frame = new JFrame("Lullaby's Kitchen"); 
     main_panel = new JPanel(); 
     main_panel.setLayout(new BorderLayout()); 
     frame.setContentPane(main_panel); 



     northpanel = new JPanel(); 
     northpanel.setLayout(new FlowLayout()); 


     label = new JLabel("Kitchen"); 

     northpanel.add(label); 


     main_panel.add(northpanel , BorderLayout.NORTH); 


     frame.setSize(500 , 500); 
     frame.setVisible(true); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    } 

    private KitchenUserInterface (String[] order){ 
     this(); 
     list = new JList<String>(order); 
     main_panel.add(list , BorderLayout.CENTER); 

     southpanel = new JPanel(); 
     southpanel.setLayout(new FlowLayout()); 

     nextOrder = new JButton("Next Order Set"); 
     nextOrder.addActionListener(new OrderUpListener(list)); 
     southpanel.add(nextOrder); 
     main_panel.add(southpanel, BorderLayout.SOUTH); 



    } 

    public static void main(String[] args) { 
     KitchenUserInterface dat = kitchenRunner.getInstance(); 
     try{ 

     Thread.sleep(1500); 
     System.out.println("Ready"); 
     dat.setList(OrderArray.getInstance().getOrders()); 
     } 
     catch(Exception event) { 
      System.out.println("Error sleep"); 
      System.out.println(event); 
     } 


     } 

} 
3

बस का उपयोग frame.setVisible (गलत); फ्रेम.सेट दृश्यमान (सत्य); मुझे छवियों के साथ जेएलएबल्स के साथ यह समस्या हुई है, और इसने इसे हल किया

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

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