vraag 1 is het eenvoudigst...
System.out.println(uur +":" + minuut + ":" seconde);
Je kan je functies in een (oneindige) lus zetten. Echter jou code moet maar 1x per seconde runnen. Dus moet je een na elke keer dat je code is uitgevoerd een 1000 ms wachten. Dit kan met Thread.sleep(1000).
Code:
try {
while(true) {
// hier je code...
Thread.sleep(1000);
}
} catch (InterruptedException ex) {
//JVM probeert jou programma af te sluiten...
}
Nadeel van deze methode is dat je programma niks meer kan doen.. Met Thread.sleep geeft je aan dat je programma niks meer wilt doen en JAVA krijgt de rest van de tijd.
De InterruptedException krijgt je van JAVA als die jou programma moet afsluiten, je krijgt dan nog een keer de mogelijkheid om wat "op te ruimen".
Een betere manier is om de javax.swing.Timer class te gebruiken. dit ziet er als volgt uit:
Code:
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Timer klok = new Timer(1000, new ActionListener() {
public void actionPerformed(ActionEvent e) {
// hier je code voor de klok...
}
});
klok.start();
//hier moet je aan de user vragen of hij wil stoppen...
klok.stop();
}
}
Wat de code doet.. Je maakt een nieuwe ActionListener object aan en een timer object. De timer zal in de achtergrond lopen en elke 1000 ms de methode actionPerformed(..) aanroepen van je ActionListener object.
Je moet er wel voor zorgen dat er tussen klok.start en klok.stop.. code komt te staan.. anders is je klok al weer gestopt voor je het weet.
Omdat je klok code in de achtergrond loopt, kan je programma iets anders nuttigs doen.
