import javax.swing.JTextArea; /* * T2 * * Version 1.0 * * 20061003 * * Author: Jenny Nordgren */ /** *T2 skriver ut meddelandet "Tråd 2" till en JTextArea varje sekund. Tråden kan stoppas genom interrupt(), eller pausas och startas igen med pause() och unpause() */ public class T2 implements Runnable { private Thread t = new Thread(this); 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 T2(JTextArea pa) { t.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 2\n"); printarea.setCaretPosition(printarea.getText().length()); try { t.sleep(1000); } catch(InterruptedException ie) { alive = false; } } try { t.sleep(25); } catch(InterruptedException ie) { alive = false; } } } /** * Skickar en interrupt till tråden t som stoppar tråden. */ public void interrupt() { active = false; t.interrupt(); } /** * 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; } }