Archiv verlassen und diese Seite im Standarddesign anzeigen : Java | Etwas zu einem bestimmten ZEITpunkt ausführen...
hallo,
ich hatte hier einmal die Idee eine kleine Erinnerungsbox für mich selbst in Java zu schreiben, das Programm wird also gestartet und zu einem Zeitpunkt der im Source definitert ist, soll z.B. ne kleine Box mit Inhalt erscheinen.
Hierbei macht mir allerdings "nur" der erste Teil Probleme, also wie kann ich es machen das mein Programm(teil) .... zu einem bestimmten Zeitpunkt, zb. 16.00Uhr ausgeführt wird ? Noch was, wenn der User es nicht mit OK bestätigt soll eine Viertelstunden später nochmals nachgefragt werden, also ähnliches Problem, hat jemand ne Idee dafür ?
tia
maceop
ps. ich habe diese frage auch auf einem anderen Board gestellt (www.computer-security.de), also wundert euch nicht wenn ihr einen solchen Thread auch dort findet...vielleicht ergänzen sich Hinweise/Codes....ja
anda_skoa
10-10-2002, 20:45
Wenn das Programm sonst nichts tun muß ist das einfach.
1) Aktuelle Zeit bestimmen
Calendar cal = Calendar.getInstance().
long now = cal.getTimeInMillis();
2) Zielzeit bestimmen
cal.set(...); //... durch das Zieldatum ersetzen
long later = cal.getTimeInMillis();
3) Schlafen
Thread.sleep(later-now);
Ciao,
_
hallo,
also erst einmal danke für die schnelle antwort.
du sagtest solange es nichts anderes machen muss, wie würdest du das ganze denn lösen wenn es noch was anderes machen müsste ?
mich würde da mal interessieren was sich ändert, normalerweise kann man den Prozess ja dann nicht "schlafen" lassen.
Wenn einer noch wüsste wie es ginge wenn das Prog während der 15 Min, bzw. bis 16.00Uhr was machen sollte, kann es ja mal posten.
tia
maceop
anda_skoa
10-10-2002, 22:39
Je nachdem was noch zu machen ist.
Wenn es reicht, hin und wieder was zu tun, dann kannst du in kleineren Schritten schlafen.
Wenn das Programm zB eine GUI hat und zu jeder Zeit reagieren können muß, dann mußt du den "Timer" in einem extra Thread laufen lassen.
Ciao,
_
leider sind meine java-kenntnisse noch nicht allzu berauschend, trotzdem danke für die schnelle und kompetente hilfe !
werde wohl erst einmal andere basics lernen müssen
in that way
maceop
--- edit: ---
es sollte schon ne GUI sein, also das praktisch ständig was passieren könnte....
anda_skoa
10-10-2002, 23:51
Wenn du weitere Fragen hast, nachdem du dir die Basics angeschaut hast., bist du hier jeferzeit mit Fragen willkommen.
Gibt einige Java Programmierer hier.
Ciao,
_
Edit:
meine Idee wäe ungefähr so etwas
public interface Task
{
public void execute()
public long getTimeInMillis();
}
und
public class Scheduler extends Thread
{
public void addTask (Task task)
{
// task in einen Liste geben
}
public void run()
{
while (true) // eine bessere Abbruchbedingung wäre angebracht
{
// aktuelle Zeit in Millis bestimmen
// in der Liste nachsehen, ob ein Task mit zeit <= aktueller Zeit vorhanden ist
// wenn ja aus der Liste nehmen und task.execute() aufrufen
// wenn nein, oder alle tasks behandelt
// Thread.sleep() für 5 Sekunden oder so
}
}
}
hallo,
hab da mal ne dumme zwischenfrage, und zwar wie ich in ne TextArea Text einfügen , in unterschiedlichen Farben ? mir ist bekannt das es setForeground gibt, aber damit wird ja der gesamte vordergrund gefärbt.
später soll so was möglich sein:
hallo (in blau) welt (in rot)
natürlich ein nutzloses und dummes beispiel, es zeigt aber das "problem"
tia
maceop
anda_skoa
12-10-2002, 20:48
Da kannst du glaub ich mit normalen TextAreas nichts machen.
Dazu gibt es die packages unter swing.text
Ist aber keine so einfache Sache mehr, die Klassen dort sind "highly sophisticated"
Ciao,
_
peschmae
14-10-2002, 12:20
eine ganze menge von Swing - Komponenten unterstützt html,
so hab ich z.B. eben erst eine tabelle in einem JLabel dargestellt
tönt idiotisch, ist es auch denn imho ist ein label für einzeilen - Texterls, aber da es auch html versteht...
ich würds mal mit JTextArea versuchen
MfG Peschmä
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.