2012-04-28 16 views
5

में मेरा जेएफआरएएम और जेपीनेल साफ़ करना मेरे पास टिक-टैक-टो, ड्राइंग लाइनों के लिए एक साधारण जेपीनल है ... इसलिए कक्षा टीटीटी जेपीनल को बढ़ाती है, और इसमें गेम लॉजिक ऑब्जेक्ट है।एक नया गेम

सब अच्छा है, एप्लिकेशन मुख्य रूप से टीटीटी जोड़ने और सभी अच्छे में एक जेएफआरएएम है।

लेकिन जब मैं एक नया गेम फिर से शुरू करना चाहता हूं,
मैं अपने टीटीटी में "पुनरारंभ" कहता हूं जो मूलभूत रूप से करता है: gameLogic = new GameLogic(); & repaint();

अब अपने डेटा सरणी साफ है और यह केवल लाइनों पेंट चाहिए ..

किसी भी तरह से विंडोज बिल्कुल नहीं बदली है।

मैंने भाग्य के साथ सब कुछ करने की कोशिश की है। कोई सुझाव?

GameBoard.java:

public class GameBoard extends javax.swing.JPanel { 
private GameBoardLogic GameLogic; 

//..... 

public void Restart() 
{ 
    GameLogic = new GameBoardLogic(); 
    removeAll(); 
    repaint(); 
} 

Main.java:

public class Main { 
private static GameBoard TTT; 
private static JFrame application; 

public static void main(String[] args) { 

    application = new JFrame("Tic-Tac-Tow"); 
    TTT = new GameBoard(); 
    application.add(TTT); 
    application.setSize(350, 350); 
    application.setVisible(true); 
    //..... 

    if (JOptionPane.showConfirmDialog(null, "Do you want to play again?") == 
               JOptionPane.YES_OPTION) 
    { 
     application.removeAll(); 
     TTT.Restart(); 
     application.add(TTT); 
     application.validate(); 
    } 
+2

* "कोई सुझाव ??" ​​* 1) बेहतर मदद के लिए जल्द ही, एक [एसएससीसीई] पोस्ट करें (http://sscce.org/)। 2) उस चिपचिपा '?' को ठीक करें कुंजी। –

+0

क्या आप एक एसएससीसीई पोस्ट करने जा रहे हैं? –

उत्तर

6

मेरे लिए हमेशा काम किया इस

panel.removeAll(); 
//add your elements 
revalidate(); 
repaint(); 
+0

@ कोड भी जोड़ा गया। क्षमा करें mkorbel, अब कोशिश की। काम नहीं किया खिड़कियां साफ़ नहीं होंगे। जीत चित्रों के साथ रहता है .... – zaxy78

+0

आप अपने तत्वों को सम्मिलित करने से पहले और बाद में दोनों को पुनः सत्यापित करने का प्रयास कर सकते हैं। –

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