import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; /** * Klasse für Erstellung von winScreen Objekten * Dient zur Anzeige des Sieges nachdem ein Spiel * @author Lucas Bronson */ public class WinScreen extends JPanel { JLabel winLabel = new JLabel("Du hast Gewonnen!"); Font robotoFont = new Font("Roboto", Font.BOLD, 45); JButton okButton = new JButton("Zurück zum Hauptmenü"); /** * Konstruktor der WinScreen Klasse * @param frame Der Mainframe der Anwendung über den alle Panels angezeigt werden. * @author Lucas Bronson */ public WinScreen(MainFrame frame) { setLayout(null); buildPanel(frame); } /** * Panel bauen/Objekte hinzufuegen * @param frame Der Mainframe der Anwendung über den alle Panels angezeigt werden. * @author Lucas Bronson */ public void buildPanel(MainFrame frame) { Timer timer = new Timer(5, new ActionListener() { private float hue = 0; // Farbton-Wert für HSB-Farbmodell @Override public void actionPerformed(ActionEvent e) { // Farbe basierend auf dem Farbton-Wert berechnen Color pulsierendeFarbe = Color.getHSBColor(hue, 0.8f, 0.8f); // Sättigung und Helligkeit fix winLabel.setForeground(pulsierendeFarbe); // Farbton leicht verändern (Zyklus zwischen 0 und 1) hue += 0.01f; if (hue > 1) { hue = 0; } } }); okButton.setBounds(650,525,200,50); winLabel.setBounds(500,450,500,50); timer.start(); // Timer starten winLabel.setFont(robotoFont); winLabel.setHorizontalAlignment(SwingConstants.CENTER); //okButton.setHorizontalAlignment(SwingConstants.CENTER); okButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { frame.showPanel("MainMenu"); } }); add(winLabel); add(okButton); } }