You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Swing har en spesiell timer, som egner seg til bruk mot GUI. Veldig enkelt forklart kan man bruke en swingtimer til å utføre kode med faste intervaller, i den hensikt å få en applikasjon til å leve helt/delvis på egen hånd, etter bestemte premisser.

Dette bygger videre på Hendelsestyrte programmer i swing, men i tillegg/i stedet for brukerinteraksjon vil hendelsene være trigget av en timer.

Ett veldig simpelt eksempel kan være hvordan en nettleser oppdaterer en nettside. Når applikasjonen (nettleseren) besøker et nytt nettsted, starter timeren. Timeren vil kalle en funksjon i applikasjonen hvert halve minutt, som bruker nåværende adresse, og spør om siden på nytt.

Timeren fungerer slik at vi forteller den hvor ofte den skal "pipe" og hvem den skal "pipe" til, som heretter kalles timerens 
mottaker
Mottakeren har en metode som timeren kjenner til, og for hvert intervall kalles denne metoden hos mottakeren (kall av denne metoden blir altså et "pip"). 

Swing Timer
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Timer;

// Siden klassen SwingExample skal være mottaker for timeren, må den implementere interfacet ActionListner
// som vil si at klassen lover å ha metoden "actionPerformed". Timeren vil da kalle på denne metoden som et "pip"

public class SwingExample implements ActionListener {
 
	Timer timer = new Timer(100, this); // Intervallet skal være på 100 ms, og klassen er selv mottaker
	
    public SwingExample() {
    	timer.start();  // Timeren må startes
	}
 
	// For hvert intervall kalles denne metoden, og innholdet i metoden avgjør funksjonaliteten.
	
	public void actionPerformed(ActionEvent ae) {
		// Oppdatere komponenter, hente ny info, slette gammel info. 
	}


Timere kan også brukes til å flytte grafikk med små veldig tidsintervaller, i den hensikt å skape bevegelse. Mer om dette her. (Deadlink)

  • No labels