Triple Eye Industrieel Ingenieur Informatica Algemeen Intranet Tweede jaar INWE Programmeren van GUI's GUI's Java
Labo GUI's 09-10: Java Swing reeks 1

Labo GUI's 09-10: Java Swing reeks 1

Chronometer

Opgave: maak een chronometer-applicatie naar dit voorbeeld. Probeer de applicatie uit. Bekijk ook wat er gebeurt als je het venster resizet. Welke componenten en layoutmanagers zijn er gebruikt?

Je mag NetBeans gebruiken, maar niet de GUI-builder - voeg alle componenten programmatorisch toe. Maak gebruik van layoutmanagers en - zonodig - hulppanelen.

Er bestaan verschillende timer-klassen. In een Swing-applicatie gebruik je best javax.swing.Timer. De constructor vraagt twee argumenten: het eerste is het tijdsinterval (in ms), het tweede een "event-handler". In dit geval moet de eventhandler de interface java.awt.event.ActionListener implementeren. Dit kan

  • via een aparte handler-klasse (in een andere file, ofwel in dezelfde file als niet-publieke klasse, ofwel als anonieme klasse)
  • door het frame zelf de ActionListener-interface te laten implementeren.

    Merk op dat de handles ...-constructie uit VB.NET niet bestaat in Java. In Java is een event-handler trouwens altijd een klasse, niet een methode! In het geval van ActionListener bevat de interface slechts 1 methode, maar er bestaan andere listener-interfaces met meerdere methodes. Alle event-handlers worden toegevoegd via methodes zoals addActionListener(...) of via een constructor.

    Opgelet: de tijd tussen twee timer-ticks is slechts bij benadering gelijk aan het gegeven tijdsinterval! Om correctere resultaten te krijgen kun je beter telkens de huidige tijd (in ms) vergelijken met de starttijd. De huidige tijd kun je verkrijgen via de klasse Date of via de klasse System.

    Extra

    Gebruik dit font voor de cijfers.

    Tips: Zet het font in src/resources en gebruik Class.getResourceAsStream om het in te laden...


  • W. Schepens 07/11/2008

    Welkom | Hogeschool Gent | INWE | Studentenserver | Docentenserver | Intranet