From 8069315c15032a2c8cb59746eebc72e8601574b6 Mon Sep 17 00:00:00 2001 From: Joshua Date: Tue, 19 Nov 2024 16:25:52 +0100 Subject: [PATCH] Implemented CardLayout into startMultiplayerGame, startLocalGame, MainMenuView. Implemented MainFrame. --- src/LocalGamePanel.java | 23 -------- src/MainMenuController.java | 2 +- src/MainMenuPanel.java | 32 ---------- src/MultiplayerGamePanel.java | 23 -------- src/startLocalGame.java | 49 +++++++-------- src/startMultiplayerGame.java | 108 ++++++++++++---------------------- 6 files changed, 61 insertions(+), 176 deletions(-) delete mode 100644 src/LocalGamePanel.java delete mode 100644 src/MainMenuPanel.java delete mode 100644 src/MultiplayerGamePanel.java diff --git a/src/LocalGamePanel.java b/src/LocalGamePanel.java deleted file mode 100644 index 38dd7d7..0000000 --- a/src/LocalGamePanel.java +++ /dev/null @@ -1,23 +0,0 @@ -import javax.swing.*; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - -public class LocalGamePanel extends JPanel { - - public LocalGamePanel(MainFrame frame) { - setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); - - JLabel label = new JLabel("Lokales Spiel"); - JButton backButton = new JButton("Zurück zum Hauptmenü"); - backButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - frame.showPanel("MainMenu"); - } - }); - - add(label); - add(Box.createVerticalStrut(20)); - add(backButton); - } -} diff --git a/src/MainMenuController.java b/src/MainMenuController.java index 7a801ca..c0ddcb1 100644 --- a/src/MainMenuController.java +++ b/src/MainMenuController.java @@ -27,7 +27,7 @@ public class MainMenuController implements ActionListener { // view.toggleMute(); // }else if(e.getSource() == view.getLocalButton()) { model.setGameMode("LocalGame"); - startLocalGame localGame = new startLocalGame(); + //startLocalGame localGame = new startLocalGame(); // view.addPanel(localGame.getLocalPanel(), "LocalMenu"); // view.showPanel("LocalMenu"); } diff --git a/src/MainMenuPanel.java b/src/MainMenuPanel.java deleted file mode 100644 index d642f00..0000000 --- a/src/MainMenuPanel.java +++ /dev/null @@ -1,32 +0,0 @@ -import javax.swing.*; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - -public class MainMenuPanel extends JPanel { - - public MainMenuPanel(MainFrame frame) { - setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); - - // Button für "Lokales Spiel Starten" - JButton localGameButton = new JButton("Lokales Spiel Starten"); - localGameButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - frame.showPanel("LocalGame"); - } - }); - - // Button für "Multiplayer Spiel Starten" - JButton multiplayerButton = new JButton("Multiplayer Spiel Starten"); - multiplayerButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - frame.showPanel("MultiplayerGame"); - } - }); - - add(localGameButton); - add(Box.createVerticalStrut(20)); // Abstand zwischen den Buttons - add(multiplayerButton); - } -} diff --git a/src/MultiplayerGamePanel.java b/src/MultiplayerGamePanel.java deleted file mode 100644 index 4955a81..0000000 --- a/src/MultiplayerGamePanel.java +++ /dev/null @@ -1,23 +0,0 @@ -import javax.swing.*; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - -public class MultiplayerGamePanel extends JPanel { - - public MultiplayerGamePanel(MainFrame frame) { - setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); - - JLabel label = new JLabel("Multiplayer Spiel"); - JButton backButton = new JButton("Zurück zum Hauptmenü"); - backButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - frame.showPanel("MainMenu"); - } - }); - - add(label); - add(Box.createVerticalStrut(20)); - add(backButton); - } -} diff --git a/src/startLocalGame.java b/src/startLocalGame.java index 5c6af2b..04675fa 100644 --- a/src/startLocalGame.java +++ b/src/startLocalGame.java @@ -1,9 +1,7 @@ import javax.swing.*; import java.awt.*; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -public class startLocalGame { +public class startLocalGame extends JPanel { // Funktionshilfen int semesterCounter = 1; // Semester Counter Label String leftPlayerNickname = "Spieler 1"; @@ -36,64 +34,63 @@ public class startLocalGame { JTextField rightPlayerTextField = new JTextField(20); // Methode zur Erstellung des Panels - public JPanel createLocalGamePanel(CardLayout cardLayout, JPanel mainPanel) { - JPanel localGamePanel = new JPanel(); - localGamePanel.setLayout(null); + startLocalGame(MainFrame frame) { + setLayout(null); // Stelle das Layout des Panels ein // Setze Komponentenpositionen frameTitle.setBounds(20, 20, 200, 30); - localGamePanel.add(frameTitle); + add(frameTitle); semesterLabel.setBounds(700, 300, 200, 30); - localGamePanel.add(semesterLabel); + add(semesterLabel); leftPlayerName.setBounds(50, 625, 200, 30); - localGamePanel.add(leftPlayerName); + add(leftPlayerName); rightPlayerName.setBounds(1200, 625, 200, 30); - localGamePanel.add(rightPlayerName); + add(rightPlayerName); leftPlayerIcon.setBounds(75, 400, 200, 128); - localGamePanel.add(leftPlayerIcon); + add(leftPlayerIcon); rightPlayerIcon.setBounds(1225, 400, 200, 128); - localGamePanel.add(rightPlayerIcon); + add(rightPlayerIcon); semesterCounterLabel.setBounds(725, 475, 50, 50); semesterCounterLabel.setHorizontalAlignment(SwingConstants.CENTER); - localGamePanel.add(semesterCounterLabel); + add(semesterCounterLabel); backButton.setBounds(1380, 20, 80, 80); - localGamePanel.add(backButton); + add(backButton); leftPlayerLeftButton.setBounds(50, 450, 50, 50); - localGamePanel.add(leftPlayerLeftButton); + add(leftPlayerLeftButton); leftPlayerRightButton.setBounds(250, 450, 50, 50); - localGamePanel.add(leftPlayerRightButton); + add(leftPlayerRightButton); semesterUpButton.setBounds(725, 400, 50, 50); - localGamePanel.add(semesterUpButton); + add(semesterUpButton); semesterDownButton.setBounds(725, 550, 50, 50); - localGamePanel.add(semesterDownButton); + add(semesterDownButton); rightPlayerLeftButton.setBounds(1200, 450, 50, 50); - localGamePanel.add(rightPlayerLeftButton); + add(rightPlayerLeftButton); rightPlayerRightButton.setBounds(1400, 450, 50, 50); - localGamePanel.add(rightPlayerRightButton); + add(rightPlayerRightButton); startButton.setBounds(700, 750, 100, 50); - localGamePanel.add(startButton); + add(startButton); leftPlayerTextField.setBounds(50, 650, 250, 50); leftPlayerTextField.setText(leftPlayerNickname); - localGamePanel.add(leftPlayerTextField); + add(leftPlayerTextField); rightPlayerTextField.setBounds(1200, 650, 250, 50); rightPlayerTextField.setText(rightPlayerNickname); - localGamePanel.add(rightPlayerTextField); + add(rightPlayerTextField); // ActionListener für Buttons semesterUpButton.addActionListener(e -> { @@ -116,11 +113,9 @@ public class startLocalGame { rightPlayerLeftButton.addActionListener(e -> toggleRightPlayerIcon()); rightPlayerRightButton.addActionListener(e -> toggleRightPlayerIcon()); - backButton.addActionListener(e -> cardLayout.show(mainPanel, "MainMenu")); + backButton.addActionListener(e -> frame.showPanel("MainMenu")); - startButton.addActionListener(e -> cardLayout.show(mainPanel, "multiplayerGame")); - - return localGamePanel; + startButton.addActionListener(e -> frame.showPanel("MainMenu")); // TODO ECHTE FUNKTION EINFÜGEN } private void toggleLeftPlayerIcon() { diff --git a/src/startMultiplayerGame.java b/src/startMultiplayerGame.java index 2ead3f1..e26df35 100644 --- a/src/startMultiplayerGame.java +++ b/src/startMultiplayerGame.java @@ -1,17 +1,8 @@ import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -/* - TODO: - Back Button führt ins vorherige Fenster - Spiel erstellen/beitreten geht ins nächste Fenster - Gebrauchte Attribute werden übergeben (Semester Spielername etc.) - Klasse mit Controller aufteilen -*/ - -public class startMultiplayerGame { +public class startMultiplayerGame extends JPanel { // Funktionshilfen int semesterCounter = 1; // Semester Counter Label String PlayerNickname = "Spieler 1"; @@ -23,7 +14,7 @@ public class startMultiplayerGame { // Labels JLabel frameTitle = new JLabel("Multiplayer Spiel"); - JLabel semesterlable = new JLabel("Semester"); + JLabel semesterLabel = new JLabel("Semester"); JLabel PlayerName = new JLabel("Name"); JLabel PlayerIcon = new JLabel(humanPlayerIcon); JLabel semesterCounterLabel = new JLabel(String.valueOf(semesterCounter)); @@ -40,106 +31,83 @@ public class startMultiplayerGame { // Textfelder JTextField PlayerTextField = new JTextField(20); - // Method to create the Multiplayer Panel - public JPanel createMultiplayerPanel(CardLayout cardLayout, JPanel mainPanel) { - // Create a new JPanel for the multiplayer game - JPanel multiplayerPanel = new JPanel(); - multiplayerPanel.setLayout(null); + // Konstruktor + startMultiplayerGame(MainFrame frame) { + setLayout(null); // Setze das Layout für das Panel auf null - // Erstelle Label + // Setze Komponentenpositionen und füge sie dem Panel hinzu frameTitle.setBounds(20, 20, 200, 30); - multiplayerPanel.add(frameTitle); + add(frameTitle); - semesterlable.setBounds(700, 300, 200, 30); - multiplayerPanel.add(semesterlable); + semesterLabel.setBounds(700, 300, 200, 30); + add(semesterLabel); PlayerName.setBounds(50, 625, 200, 30); - multiplayerPanel.add(PlayerName); + add(PlayerName); PlayerIcon.setBounds(75, 400, 200, 128); - multiplayerPanel.add(PlayerIcon); + add(PlayerIcon); semesterCounterLabel.setBounds(725, 475, 50, 50); // zwischen den Up/Down-Buttons semesterCounterLabel.setHorizontalAlignment(SwingConstants.CENTER); - multiplayerPanel.add(semesterCounterLabel); + add(semesterCounterLabel); - // Erstellt Buttons + // Füge Buttons hinzu und setze ihre Positionen backButton.setBounds(1380, 20, 80, 80); - multiplayerPanel.add(backButton); + add(backButton); PlayerLeftButton.setBounds(50, 450, 50, 50); - multiplayerPanel.add(PlayerLeftButton); + add(PlayerLeftButton); PlayerRightButton.setBounds(250, 450, 50, 50); - multiplayerPanel.add(PlayerRightButton); + add(PlayerRightButton); semesterUpButton.setBounds(725, 400, 50, 50); - multiplayerPanel.add(semesterUpButton); + add(semesterUpButton); semesterDownButton.setBounds(725, 550, 50, 50); - multiplayerPanel.add(semesterDownButton); + add(semesterDownButton); joinGameButton.setBounds(1100, 350, 200, 50); - multiplayerPanel.add(joinGameButton); + add(joinGameButton); createGameButton.setBounds(1100, 550, 200, 50); - multiplayerPanel.add(createGameButton); + add(createGameButton); - // Erstellt Textfelder + // Füge das Textfeld hinzu PlayerTextField.setBounds(50, 650, 250, 50); - multiplayerPanel.add(PlayerTextField); - - //ZUSATZ PlayerTextField.setText(PlayerNickname); + add(PlayerTextField); - // ActionListener für die Buttons + // ActionListener für Buttons // SEMESTERBUTTONS - semesterUpButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - if (semesterCounter < 6) { - semesterCounter++; - semesterCounterLabel.setText(String.valueOf(semesterCounter)); - } + semesterUpButton.addActionListener(e -> { + if (semesterCounter < 6) { + semesterCounter++; + semesterCounterLabel.setText(String.valueOf(semesterCounter)); } }); - semesterDownButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - if (semesterCounter > 1) { // Verhindert, dass der Wert unter 1 fällt - semesterCounter--; - semesterCounterLabel.setText(String.valueOf(semesterCounter)); - } + semesterDownButton.addActionListener(e -> { + if (semesterCounter > 1) { + semesterCounter--; + semesterCounterLabel.setText(String.valueOf(semesterCounter)); } }); // PLAYERTOGGLEBUTTONS - PlayerLeftButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - toggleLeftPlayerIcon(); - updateTextFields(); - } + PlayerLeftButton.addActionListener(e -> { + toggleLeftPlayerIcon(); + updateTextFields(); }); - PlayerRightButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - toggleLeftPlayerIcon(); - updateTextFields(); - } + PlayerRightButton.addActionListener(e -> { + toggleLeftPlayerIcon(); + updateTextFields(); }); // ActionListener für den "Back" Button, um zum vorherigen Panel zurückzukehren - backButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - cardLayout.show(mainPanel, "localGamePanel"); - } - }); - - return multiplayerPanel; + backButton.addActionListener(e -> frame.showPanel("MainMenu")); } // TOGGLE METHODEN