Compare commits

..

No commits in common. "1fc1abee3a4708ffaef6ca08635f99e3db67fad6" and "ea6a1c980482a865b37aadaf10a46b6233ba607f" have entirely different histories.

2 changed files with 42 additions and 26 deletions

View File

@ -7,7 +7,7 @@ public class MainFrame extends JFrame {
private JPanel mainPanel; private JPanel mainPanel;
public MainFrame() { public MainFrame() {
setTitle("Studium Versenken"); setTitle("Spiel UI mit CardLayout");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(1500, 1000); setSize(1500, 1000);
setLocationRelativeTo(null); setLocationRelativeTo(null);

View File

@ -1,39 +1,55 @@
import javax.swing.*; import javax.swing.*;
import java.awt.*; import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class coinToss extends JPanel { public class coinToss extends JPanel {
private int reihenfolge = 1; // 1 = Spieler 1 fängt an, 0 = Spieler 2 fängt an // Funktionshilfen
private JLabel frameTitle = new JLabel("Zugreihenfolge", SwingConstants.CENTER);
private JLabel text = new JLabel("", SwingConstants.CENTER); // Label für die Nachricht
private int reihenfolge = 1; // Beispielhaft: 1 = Spieler 1 fängt an, 0 = Spieler 2 fängt an
private Timer timer; private Timer timer;
private JLabel infoLabel;
// Konstruktor // Konstruktor
public coinToss(MainFrame frame) { coinToss(MainFrame frame) {
setLayout(new BorderLayout()); setLayout(null); // Setze das Layout des Panels auf CardLayout
// Info-Label für den Anzeigetext // Nachricht basierend auf 'reihenfolge' einstellen
infoLabel = new JLabel("", SwingConstants.CENTER); String startMessage = (reihenfolge == 1)
infoLabel.setFont(new Font("Arial", Font.BOLD, 24)); ? "Du fängst an, mach dich bereit..."
add(infoLabel, BorderLayout.CENTER); : "Dein Gegner fängt an, mach dich bereit...";
text.setText(startMessage);
text.setFont(new Font("Arial", Font.BOLD, 24));
add(text);
// Bestimme den Anfangstext basierend auf der "reihenfolge" Variable frameTitle.setFont(new Font("Arial", Font.BOLD, 32));
if (reihenfolge == 1) {
infoLabel.setText("Du fängst an, mach dich bereit..."); // Beispielhaftes "Spielfeld" (nächste Szene)
} else { JPanel gamePanel = new JPanel();
infoLabel.setText("Dein Gegner fängt an, mach dich bereit..."); gamePanel.setLayout(new BorderLayout());
JLabel gameLabel = new JLabel("Das Spiel beginnt!", SwingConstants.CENTER);
gameLabel.setFont(new Font("Arial", Font.BOLD, 36));
gamePanel.add(gameLabel, BorderLayout.CENTER);
// Füge das Spiel-Panel zu diesem Panel hinzu
add(gamePanel, "game");
// Timer starten
startTimer();
} }
// Erster Timer, der den Text nach 3 Sekunden auf "Es geht Los!" setzt private void startTimer() {
/*timer = new Timer(3000, e -> { // Timer, der nach 3 Sekunden zum Spiel-Panel wechselt
infoLabel.setText("Es geht Los!"); timer = new Timer(3000, new ActionListener() {
@Override
// Zweiter Timer, der nach weiteren 3 Sekunden zum Hauptmenü zurückkehrt public void actionPerformed(ActionEvent e) {
Timer backToMenuTimer = new Timer(3000, ev -> { // Wechsel zum Spiel-Panel
frame.showPanel("MainMenu"); CardLayout cardLayout = (CardLayout) getLayout();
cardLayout.show(coinToss.this, "game");
timer.stop(); // Timer stoppen
}
}); });
//backToMenuTimer.setRepeats(false); // Timer nur einmal ausführen timer.setRepeats(false); // Timer soll nur einmal ablaufen
backToMenuTimer.start(); timer.start(); // Timer starten
});
//timer.setRepeats(false); // Erster Timer soll nur einmal ausgeführt werden
timer.start();*/
} }
} }