ole #7

Merged
lgc merged 23 commits from ole into main 2024-11-26 14:01:01 +00:00
1 changed files with 25 additions and 41 deletions
Showing only changes of commit 737e485773 - Show all commits

View File

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