Added test classes for CardLayout and GameBoard.java

This commit is contained in:
Joshua 2024-11-19 14:24:09 +01:00
parent d95df0cf5f
commit 607004a3b3
5 changed files with 127 additions and 0 deletions

3
src/GameBoard.java Normal file
View File

@ -0,0 +1,3 @@
public class GameBoard {
}

23
src/LocalGamePanel.java Normal file
View File

@ -0,0 +1,23 @@
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);
}
}

46
src/MainFrame.java Normal file
View File

@ -0,0 +1,46 @@
import javax.swing.*;
import java.awt.*;
public class MainFrame extends JFrame {
private CardLayout cardLayout;
private JPanel mainPanel;
public MainFrame() {
setTitle("Spiel UI mit CardLayout");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(800, 600);
// Erstelle das CardLayout und das Hauptpanel
cardLayout = new CardLayout();
mainPanel = new JPanel(cardLayout);
// Erstelle die verschiedenen Panels
MainMenuPanel mainMenuPanel = new MainMenuPanel(this);
LocalGamePanel localGamePanel = new LocalGamePanel(this);
MultiplayerGamePanel multiplayerGamePanel = new MultiplayerGamePanel(this);
// Füge die Panels dem CardLayout hinzu
mainPanel.add(mainMenuPanel, "MainMenu");
mainPanel.add(localGamePanel, "LocalGame");
mainPanel.add(multiplayerGamePanel, "MultiplayerGame");
// Setze das Hauptpanel in das JFrame
add(mainPanel);
// Zeige das Hauptmenü an
cardLayout.show(mainPanel, "MainMenu");
}
// Methode, um die Ansicht zu wechseln
public void showPanel(String panelName) {
cardLayout.show(mainPanel, panelName);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
MainFrame frame = new MainFrame();
frame.setVisible(true);
});
}
}

32
src/MainMenuPanel.java Normal file
View File

@ -0,0 +1,32 @@
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);
}
}

View File

@ -0,0 +1,23 @@
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);
}
}