package elte.java2_utikalauz5.thread; import java.util.concurrent.*; /** Metronóm. @link.forrásfájl {@docRoot}/../data/thread/src Ticker.java @link.letöltés {@docRoot}/../data/thread Ticker.jar @since Java 2 Útikalauz programozóknak 5.0 */ public class Ticker implements Runnable {// Egy "tick"-et lejátszó osztály public Ticker(String filename) throws Exception { clip = javax.sound.sampled.AudioSystem.getClip();//betöltjük a "tick" hangot clip.open(javax.sound.sampled.AudioSystem.getAudioInputStream(getClass().getClassLoader().getResource(filename))); } javax.sound.sampled.Clip clip; // a lejátszandó zene public void run() { clip.stop(); // leállítjuk clip.setFramePosition(0); // elejére állunk clip.start(); // újra lejátszuk } public static void main(String[] args) { try { ScheduledExecutorService executor = // egy szálat használó futtató osztály Executors.newSingleThreadScheduledExecutor(); // állandó ütemezés fél másodpercenként executor.scheduleAtFixedRate(new Ticker("tick.wav"), 0L, 500L, TimeUnit.MILLISECONDS); } catch (Exception e) {e.printStackTrace();} } }