Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Swing har en spesiell timer, som egner seg til bruk mot GUI. Veldig enkelt forklart kan man bruke en swingtimer til å få komponenter til å flytte seg med veldig små tidsintervallerutføre kode med faste intervaller, i den hensikt å få en applikasjon til å se levende ut. 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"). 

Code Block
languagejava
titleSwing Timer
linenumberstrue
// Biblioteker som må importeres
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) {
		// FlytteOppdatere komponenter eller lignende
	}
 

, 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)