Stopuhr
parent
a1f292a319
commit
b2c683495b
|
@ -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<String> 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<String> 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);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue