From 72f0dcd1af599337a463f064e86339464c94121b Mon Sep 17 00:00:00 2001
From: Samita Adhikari <sadhika7@myune.edu.au>
Date: Sat, 23 Sep 2023 03:04:04 +0545
Subject: [PATCH] Small Refactor

---
 app/src/main/java/brickbreaker/App.java       | 13 ++++++++++---
 app/src/main/java/brickbreaker/GamePanel.java |  2 ++
 app/src/main/java/brickbreaker/Menu.java      | 10 ++++++----
 3 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/app/src/main/java/brickbreaker/App.java b/app/src/main/java/brickbreaker/App.java
index c73fede..98893d2 100644
--- a/app/src/main/java/brickbreaker/App.java
+++ b/app/src/main/java/brickbreaker/App.java
@@ -13,11 +13,10 @@ public class App {
     public static Menu mainMenu;
     public static GamePanel gamePanel;
     public static ScoringSystem scoreSystem = new ScoringSystem();
+    public static JFrame frame;
     
     public static void main(String[] args) {
-        
-        JFrame frame = new JFrame();
-        
+        frame = new JFrame();
         frame.setBounds(10, 10, 700, 600);
         frame.setTitle("Brick Breaker");
         frame.setResizable(false);
@@ -29,4 +28,12 @@ public class App {
 
         frame.setVisible(true);
     }
+    
+    public static void createGame() {
+        App.gamePanel = new GamePanel(frame);
+    }
+    
+    public static void createMainMenu() {
+        App.mainMenu = new Menu(frame);
+    }
 }
diff --git a/app/src/main/java/brickbreaker/GamePanel.java b/app/src/main/java/brickbreaker/GamePanel.java
index a3fa4f3..c8f282d 100644
--- a/app/src/main/java/brickbreaker/GamePanel.java
+++ b/app/src/main/java/brickbreaker/GamePanel.java
@@ -101,6 +101,8 @@ public class GamePanel extends JPanel implements ActionListener {
             @Override
             public void actionPerformed(ActionEvent e) {
                 frame.remove(thisPanel);
+                if(App.mainMenu == null) App.createMainMenu();
+                
                 App.mainMenu.show();
                 frame.revalidate();
                 frame.repaint();
diff --git a/app/src/main/java/brickbreaker/Menu.java b/app/src/main/java/brickbreaker/Menu.java
index c966715..c975b6f 100644
--- a/app/src/main/java/brickbreaker/Menu.java
+++ b/app/src/main/java/brickbreaker/Menu.java
@@ -27,6 +27,7 @@ public class Menu extends JPanel {
     private JFrame frame;
     private Timer animationTimer;
     private int textPosition = -200;
+    
     public Menu(JFrame frame) {
         this.frame = frame;
         initComponents();
@@ -117,7 +118,7 @@ public class Menu extends JPanel {
         guest.setActionCommand("play");
         guest.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
         guest.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
-        guest.setLabel("Play as Guest");
+        guest.setLabel("Play Now");
         guest.addActionListener(new java.awt.event.ActionListener() {
             public void actionPerformed(java.awt.event.ActionEvent evt) {
                 guestActionPerformed(evt);
@@ -150,7 +151,7 @@ public class Menu extends JPanel {
                         .addGap(301, 301, 301)
                         .addComponent(registerButton))
                     .addGroup(layout.createSequentialGroup()
-                        .addGap(282, 282, 282)
+                        .addGap(301, 301, 301)
                         .addComponent(guest))
                     .addGroup(layout.createSequentialGroup()
                         .addGap(290, 290, 290)
@@ -185,7 +186,9 @@ public class Menu extends JPanel {
 
     private void guestActionPerformed(java.awt.event.ActionEvent evt) {                                      
         this.setVisible(false);
-        
+        if(App.gamePanel == null)
+            App.createGame();
+        frame.add(App.gamePanel);
     }                                     
 
     private void highScoreActionPerformed(java.awt.event.ActionEvent evt) {                                          
@@ -209,7 +212,6 @@ public class Menu extends JPanel {
         if(App.user != null) {
             this.remove(loginButton);
             this.remove(registerButton);
-            this.remove(guest);
         }
         
         frame.add(this);
-- 
GitLab