From 3b9b1eaebbcc46e186c11e58e79e612c876fe1db Mon Sep 17 00:00:00 2001 From: Kaver Date: Mon, 2 Dec 2024 19:04:34 +0100 Subject: [PATCH] Klasse fuer verbinden Panel erstellt(extrem grobes Beispiel) und Panel Weiterleitung eingefuegt Anpassungen an ActionListenern in MainMenuView Backbutton mit Funktion eingefuegt fuer joinGame Panel --- src/JoinGame.java | 9 ++++++++- src/MainFrame.java | 10 ++++++---- src/MainMenuView.java | 27 ++++++++++++++++++++++++--- src/Verbinden.java | 23 +++++++++++++++++++++++ 4 files changed, 61 insertions(+), 8 deletions(-) create mode 100644 src/Verbinden.java diff --git a/src/JoinGame.java b/src/JoinGame.java index fdacd3a..b3ac5a0 100644 --- a/src/JoinGame.java +++ b/src/JoinGame.java @@ -2,6 +2,8 @@ import java.awt.*; import javax.swing.*; public class JoinGame extends JPanel { + ImageIcon backButtonIcon = new ImageIcon("graphics/backButton.png"); + JLabel spielBeitretenLabel; JLabel ipLabel = new JLabel("IP-Adresse"); JLabel portLabel = new JLabel("Port"); @@ -10,6 +12,7 @@ public class JoinGame extends JPanel { JTextField portTextField = new JTextField(20); JButton losButton = new JButton("Los!"); + JButton backButton = new JButton(backButtonIcon); Font robotoFont = new Font("Roboto", Font.BOLD, 45); @@ -27,6 +30,7 @@ public class JoinGame extends JPanel { spielBeitretenLabel.setBounds(20,20,700, 100); losButton.setBounds(320, 225, 100, 50); + backButton.setBounds(1380, 20, 80, 80); ipLabel.setBounds(50, 125, 200, 30); portLabel.setBounds(50, 200, 200, 30); @@ -43,6 +47,9 @@ public class JoinGame extends JPanel { add(losButton); add(ipTextField); add(portTextField); - } + add(backButton); + backButton.addActionListener(e -> frame.showPanel("MultiplayerGame")); + losButton.addActionListener(e -> frame.showPanel("Verbinden")); + } } diff --git a/src/MainFrame.java b/src/MainFrame.java index 3c7ee8c..2e53062 100644 --- a/src/MainFrame.java +++ b/src/MainFrame.java @@ -37,6 +37,7 @@ public class MainFrame extends JFrame { startLocalGame localGame = new startLocalGame(this); startMultiplayerGame multiplayerGame = new startMultiplayerGame(this); coinToss coinToss = new coinToss(this); + Verbinden verbinden = new Verbinden(this); //JoinGame joinGame = new JoinGame(this,localMult); //GameBoard gameBoard = new GameBoard(this, localMult); @@ -44,6 +45,7 @@ public class MainFrame extends JFrame { mainPanel.add(localGame, "LocalGame"); mainPanel.add(multiplayerGame, "MultiplayerGame"); mainPanel.add(coinToss, "coinToss"); + mainPanel.add(verbinden, "Verbinden"); //mainPanel.add(joinGame, "JoinGame"); //mainPanel.add(gameBoard, "GameBoard"); @@ -64,8 +66,8 @@ public class MainFrame extends JFrame { //if (!isPanelPresent(panelName)) { //TODO potentiell raus JoinGame joinGame = new JoinGame(this, localMult); - mainPanel.add(joinGame, panelName); // Dynamically add the panel - mainPanel.revalidate(); // Refresh the layout + mainPanel.add(joinGame, panelName); + mainPanel.revalidate(); // Refresh mainPanel.repaint(); //} @@ -77,8 +79,8 @@ public class MainFrame extends JFrame { //if (!isPanelPresent(panelName)) { //TODO potentiell raus GameBoard gameBoard = new GameBoard(this, semesterCounter); - mainPanel.add(gameBoard, panelName); // Dynamically add the panel - mainPanel.revalidate(); // Refresh the layout + mainPanel.add(gameBoard, panelName); + mainPanel.revalidate(); // Refresh mainPanel.repaint(); //} diff --git a/src/MainMenuView.java b/src/MainMenuView.java index 958d610..af862f3 100644 --- a/src/MainMenuView.java +++ b/src/MainMenuView.java @@ -1,5 +1,6 @@ import java.awt.*; import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import javax.swing.JFrame; import javax.swing.*; @@ -36,9 +37,29 @@ public class MainMenuView extends JPanel { add(soundButton); // Event Listener für Buttons - lokalButton.addActionListener(e -> frame.showPanel("LocalGame")); - multiButton.addActionListener(e -> frame.showPanel("MultiplayerGame")); - soundButton.addActionListener(e -> toggleMute()); + lokalButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + System.out.println("Lokales Spiel ausgewählt."); + frame.showPanel("LocalGame"); // Panel wechseln + } + }); + + multiButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + System.out.println("Multiplayer-Spiel ausgewählt."); + frame.showPanel("MultiplayerGame"); // Panel wechseln + } + }); + + soundButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + System.out.println("Soundbutton geklickt."); + toggleMute(); + } + }); } private void toggleMute() { diff --git a/src/Verbinden.java b/src/Verbinden.java new file mode 100644 index 0000000..ca4feb7 --- /dev/null +++ b/src/Verbinden.java @@ -0,0 +1,23 @@ +import javax.swing.*; +import java.awt.*; + +public class Verbinden extends JPanel{ + + ImageIcon backButtonIcon = new ImageIcon("graphics/backButton.png"); + + JLabel verbindenLabel = new JLabel("Verbinde . . .",SwingConstants.CENTER); + + Font robotoFont = new Font("Roboto", Font.BOLD, 45); + + public Verbinden(MainFrame frame) { + setLayout(null); + buildPanel(frame); + } + + private void buildPanel(MainFrame frame) { + setLayout(new BorderLayout()); + verbindenLabel.setFont(robotoFont.deriveFont(50f)); + add(verbindenLabel, BorderLayout.CENTER); + } + } +