Ich möchte gerne die Reaktionszeit messen, d.h. wenn der Fensterhintergrund auf grün bzw. rot wechselt, dann soll ab hier gemessen werden, bis ich den Button gedrückt habe.
Der Lehrer hat gesagt wir sollen "System.CurrentTimeMillis()" verwenden, aber das liefert ja jene ms die vom 1 Januar 1970 bis jetzt vergangen sind.
Frage nebenbei: Warum bitte grade von 1970 und warum macht man sowas denn überhaupt?
Naja kann mir einer vllt. ein paar Ansatzhilfen bzw. Tipps zur Lösung dieses Problems geben?
Da hat man sich halt mal drauf geeinigt. Nimmt man irgendwas späteres (20xx), dann hätten die vor 20 Jahren etwas in die Röhre geschaut
Nimmt man was früheres, beispielsweise das Jahr 0. Dann hätte man utopisch hohe Zahlen die in keinen Datentyp passen würde.
[ot]
Erinnert mich an die Geschichte von den Programmierern, die nach tagelangem Debuggen rausfanden, dass ein Kunde wirklich am 1.1.1970 Geburtstag hatte
[/ot]
Dann würde ich aber System.nanoTime() verwenden, ansonsten könnte es in zugegebenermaßen sehr seltenen Fällen vorkommen dass der Unterschied negativ ist ;-) In Google Guava gibt es glaube ich auch eine Klasse StopWatch, da könnte man auch ganz gut schauen wie man es macht
Aufgabenstellung mal:
Die Anzeige der Zeit, erfolgt in einem Label mit großem Font. Für die Zeitausgabe wird eine Methode show_value(long value) eingeführt.
Ja irgendwie steh ich an bei diesem show_value, was soll ich da machen? Soll ich direkt am Fenster und bei der Konsole ausgeben, oder wie ist das gemeint?
Und die Anzeige der Zeit soll in einem Labe mit großem Font erfolgen --> JLabel? Ich hab ja schon bisschen herumgetestet, aber das funktioniert nicht.
Wie könnte ich das denn machenin etwa?
Hier der Code mal, es funktioniert eigentlich alles, paar Einzelheiten noch und dann fertig:
1) schon mal falsches pre-patch : "JDK INSTALLIEREN" hat doch hier überhaupt nichts mit zu tun ...
2) CONVENTIONS ! (ich weigere mich solche schlechten code auch nur zu lesen)
3) BASICS ! man sollte wissen das man sein Window auch mal irgendwann irgendwo irgendwie sichtbar machen muss ... diesen aufruf findet man in deinem code nicht
außerdem : extends JFrame : sowas macht man nicht ...
4) die implementierung deiner ActionListener ist grauenhaft ... getBackground()==Color.XXX ... sowas macht man eigentlich mit einfachen status-flags ... nicht mit solch komplizierten fehleranfälligen abfragen ...
5) wozu das Random verwendet wird ist mir klar ... aber die anziege ist ziemlich falsch ... denn jedes mal ein neues JLabel erstellen und dieses adden wollen ohne dann auch nur mal dran zu denken dass das Window refreshed werden muss ... da würde ich einfach n globales JLabel nutzen und dann mit setText() arbeiten (wobei das auch nicht gerade OOP wäre)
alles in allem : lerne erstmal die grundlagen und versuchs erstmal auf der console ... damit geht sowas auch ... beschäftige dich dann mit multi-threading ... und schau dir zum schluss grundlagen der GUI-entwicklung an ... dann noch alles halbwegs strukturiert zusammenfügen und du hast deinen code ... aber so wie das aktuell aussieht wirst du da selbst noch ewig dran sitzen wenn sich nicht mal wieder jemand findet der dir gütiger weise zeigt wie es richtig geht ...
1) schon mal falsches pre-patch : "JDK INSTALLIEREN" hat doch hier überhaupt nichts mit zu tun ...
2) CONVENTIONS ! (ich weigere mich solche schlechten code auch nur zu lesen)
3) BASICS ! man sollte wissen das man sein Window auch mal irgendwann irgendwo irgendwie sichtbar machen muss ... diesen aufruf findet man in deinem code nicht
außerdem : extends JFrame : sowas macht man nicht ...
4) die implementierung deiner ActionListener ist grauenhaft ... getBackground()==Color.XXX ... sowas macht man eigentlich mit einfachen status-flags ... nicht mit solch komplizierten fehleranfälligen abfragen ...
5) wozu das Random verwendet wird ist mir klar ... aber die anziege ist ziemlich falsch ... denn jedes mal ein neues JLabel erstellen und dieses adden wollen ohne dann auch nur mal dran zu denken dass das Window refreshed werden muss ... da würde ich einfach n globales JLabel nutzen und dann mit setText() arbeiten (wobei das auch nicht gerade OOP wäre)
alles in allem : lerne erstmal die grundlagen und versuchs erstmal auf der console ... damit geht sowas auch ... beschäftige dich dann mit multi-threading ... und schau dir zum schluss grundlagen der GUI-entwicklung an ... dann noch alles halbwegs strukturiert zusammenfügen und du hast deinen code ... aber so wie das aktuell aussieht wirst du da selbst noch ewig dran sitzen wenn sich nicht mal wieder jemand findet der dir gütiger weise zeigt wie es richtig geht ...