B
Bastone
Gast
Hallo Leutz,
hab gleich zwei Probleme in meiner kleinen Java-Lern-Uhr:
1. Wie bekomme ich ein Uhr die tatsächlich in echtzeit läuft?
(bisher rufe ich die Uhr auf und bekomme eine stehende Uhrzeit)
2. Hab den ganzen Nachmittag an meinem WindowClosingAdapter gebastelt um die öffnungsdauer des Fensters nach dem Schließen anzuzeigen (fragt nicht nach dem Grund, wollte mich n bisschen beschäftigen ), allerdings stimmt da was nicht (die Zeit kann unmöglich stimmen oder mein Zeitgefühl ist absolut minderwertig)
Hoffe Ihr könnt mir helfen
Hier der Code:
hab gleich zwei Probleme in meiner kleinen Java-Lern-Uhr:
1. Wie bekomme ich ein Uhr die tatsächlich in echtzeit läuft?
(bisher rufe ich die Uhr auf und bekomme eine stehende Uhrzeit)
2. Hab den ganzen Nachmittag an meinem WindowClosingAdapter gebastelt um die öffnungsdauer des Fensters nach dem Schließen anzuzeigen (fragt nicht nach dem Grund, wollte mich n bisschen beschäftigen ), allerdings stimmt da was nicht (die Zeit kann unmöglich stimmen oder mein Zeitgefühl ist absolut minderwertig)
Hoffe Ihr könnt mir helfen
Hier der Code:
Code:
package praktikum;
import java.awt.*;
import java.util.GregorianCalendar;
public class draw {
public static void main(String args[]) {
GregorianCalendar cal = new GregorianCalendar();
long millisS = cal.getTimeInMillis();
// System.out.println(millisS); //Zu Debuggingzwecken
Frame F = new Frame("Malerei vom Feinsten");
// WindowCosingAdapter wird eingebunden und variablen übergeben
F.addWindowListener(new WindowClosingAdapter(true, millisS));
// Fenstergröße
F.setSize(600, 400);
F.add("Center", new analogUhr());
F.setVisible(true);
}
}
Code:
package praktikum;
import java.awt.event.*;
import java.util.GregorianCalendar;
public class WindowClosingAdapter extends WindowAdapter
{
GregorianCalendar cal = new GregorianCalendar();
long millisAktuell = cal.getTimeInMillis();
private boolean exitSystem;
private long millisSekunden;
public WindowClosingAdapter(boolean exitSystem, long millisSekunden) {
this.exitSystem = exitSystem;
this.millisSekunden = millisSekunden;
}
public WindowClosingAdapter() {
this(true, 0);
}
public void windowClosing(WindowEvent event) {
event.getWindow().setVisible(false);
event.getWindow().dispose();
long openTime = millisAktuell - millisSekunden;
double openTimeSek = openTime / 100;
System.out.println("ciao!");
System.out.println("Du hast ganze " + openTimeSek
+ " Sekunden in diesem Fenster verbracht");
if (exitSystem) {
System.exit(0);
}
}
}
Code:
package praktikum;
import java.awt.*;
import java.util.*;
import java.io.*;
public class analogUhr extends Canvas
{
public void paint(Graphics g) {
// ---neuen Kalender cal erstellen und die Zeit auslesen
GregorianCalendar cal = new GregorianCalendar();
int stunde = cal.get(Calendar.HOUR_OF_DAY);
int minute = cal.get(Calendar.MINUTE);
int sekunde = cal.get(Calendar.SECOND);
// -----24h Uhr ggf. Umrechnen
if (stunde > 12) {
stunde = stunde - 12;
}
System.out.println(stunde + " " + minute + " " + sekunde);
// -----Winkelberechnung
int h = -30 * stunde;
int m = -6 * minute;
int s = -6 * sekunde;
// ------Ausgabe der Uhrzeit unter dem Ziffernblatt (String)
String uhrzeit = new String(stunde + ": " + minute + ": " + sekunde);
g.drawString(uhrzeit, 90, 240);
// ---------Farbe der Uhrelemente
Color hour = new Color(0, 0, 0);
Color min = new Color(255, 0, 0);
Color second = new Color(255, 255, 0);
Color koord = new Color(127, 127, 127);
// ------------Uhrzeiger
g.setColor(second);
g.fillArc(10, 10, 200, 200, 90, s);
g.setColor(min);
g.fillArc(35, 35, 150, 150, 90, m);
g.setColor(hour);
g.fillArc(60, 60, 100, 100, 90, h);
// -----------Koordinatenkreuz
g.setColor(koord);
g.drawLine(110, 0, 110, 220);
g.drawLine(0, 110, 220, 110);
}
}