import javax.swing.JTextArea; /* * T1 * * Version 1.0 * * 20061003 * * Author: Jenny Nordgren */ /** T1 skriver ut meddelandet "Tråd 1" till en JTextArea varje sekund. Tråden kan stoppas genom interrupt(), eller pausas och startas igen med pause() och unpause() */ public class T1 extends Thread { private boolean alive = true; private boolean active = true; private JTextArea printarea; /** * Konstruktor som tar en JTextArea som parameter så att tråden kan skriva ut sitt meddelande * i ett grafiskt gränssnitt. * @param pa */ public T1(JTextArea pa) { super(); start(); printarea = pa; } /** * Run utför trådens uppgift: Att skriva ut Tråd 1 en gån i sekunden. */ public void run() { while(alive) { while(active) { printarea.append("Tråd 1\n"); printarea.setCaretPosition(printarea.getText().length()); try { sleep(1000); } catch(InterruptedException ie) { active = false; alive = false; } } try { sleep(25); } catch(InterruptedException ie) { alive = false; } } } /** * pause avbryter trådens uppgift utan att avsluta den * */ public void pause() { active = false; } /** * unpause återupptar trådens uppgift om den är pausad * */ public void unpause() { active = true; } }