diff --git a/Programmierung2/src/Übungen/Stopuhr.java b/Programmierung2/src/Übungen/Stopuhr.java new file mode 100644 index 0000000..f9ac585 --- /dev/null +++ b/Programmierung2/src/Übungen/Stopuhr.java @@ -0,0 +1,114 @@ +package Übungen; + +import java.awt.EventQueue; + +import javax.swing.*; +import javax.swing.border.EmptyBorder; +import java.awt.*; +import java.util.ArrayList; + +public class Stopuhr extends JFrame { + + JPanel contentPane; + JLabel zeige_zeit; + JButton start_zeit, stop_zeit_1; + JTextArea zeige_alleZeiten; + + Timer timer, print_alleZeiten; + boolean aktiv; + long startzeit; + + int speichere_alle_zeiten_index = 0; + ArrayList speichere_alle_zeiten = new ArrayList<>(); + + public Stopuhr() { + this.setTitle("Stopuhr"); + setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + setBounds(100, 100, 498, 630); + contentPane = new JPanel(); + contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); + setContentPane(contentPane); + contentPane.setLayout(null); + zeite_elemente(); + start_programm(); + + this.setVisible(true); + } + + public void start_programm() { + aktiv = false; + timer = new Timer(100, e -> update_zeit()); + print_alleZeiten = new Timer(100, e -> print_next_time()); + start_zeit.addActionListener(e -> start_stopuhr()); + stop_zeit_1.addActionListener(e -> stop_stopuhr()); + } + + public void start_stopuhr() { + if (!aktiv) { + timer.start(); + startzeit = System.currentTimeMillis(); + aktiv = true; + speichere_alle_zeiten_index = 0; + + }else + print_alleZeiten.start(); + + + } + + public void stop_stopuhr() { + if (aktiv) { + timer.stop(); + print_alleZeiten.stop(); + start_zeit.setEnabled(false); + aktiv = false; + + } else { + zeige_alleZeiten.setText(""); + zeige_zeit.setText("Zeit: 0.0 s"); + start_zeit.setEnabled(true); + speichere_alle_zeiten.clear(); + } + } + + public void update_zeit() { + double rest = (System.currentTimeMillis() - startzeit) / 1000.0; + String formatiere_zahl = String.format("Zeit: %.1f s", rest); + speichere_alle_zeiten.add(formatiere_zahl); + zeige_zeit.setText(formatiere_zahl); + } + + public void print_next_time() { + + zeige_alleZeiten.append(speichere_alle_zeiten_index + 1 + ".: " + speichere_alle_zeiten.get(speichere_alle_zeiten_index) + "\n"); + speichere_alle_zeiten_index++; + + } + + public static void main(String[] args) { + new Stopuhr(); + } + + public ArrayList getalleZeiten() { + return speichere_alle_zeiten; + } + + public void zeite_elemente() { + zeige_zeit = new JLabel("Zeit: 0.0 s"); + zeige_zeit.setFont(new Font("Tahoma", Font.BOLD, 16)); + zeige_zeit.setBounds(10, 11, 450, 42); + contentPane.add(zeige_zeit); + start_zeit = new JButton("Start/Lap"); + start_zeit.setBounds(10, 484, 190, 54); + contentPane.add(start_zeit); + + stop_zeit_1 = new JButton("Stop/Löschen"); + stop_zeit_1.setBounds(252, 484, 190, 54); + contentPane.add(stop_zeit_1); + + zeige_alleZeiten = new JTextArea(); + zeige_alleZeiten.setFont(new Font("Arial", Font.BOLD, 15)); + zeige_alleZeiten.setBounds(10, 53, 417, 376); + contentPane.add(zeige_alleZeiten); + } +} \ No newline at end of file