import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.event.*; //Själva äpplet!! public class tradning extends JApplet{ private JTextArea utskrift; private JButton trada, tradb; //referenser till "trådarna" private TradAndra tradandra; private TradForsta tradforsta; public void init() { //center delen utskrift=new JTextArea(); JScrollPane scroll=new JScrollPane(utskrift); getContentPane().add(scroll, BorderLayout.CENTER); //nedre delen JPanel nedre=new JPanel(new FlowLayout(FlowLayout.LEFT)); trada=new JButton("Aktivera 1"); tradb=new JButton("Aktivera 2"); //"Lyssnarna" viktigt att lägga dessa i rätt ordning! trada.addActionListener(new TradForstaLyssnare()); tradb.addActionListener(new TradAndraLyssnare()); nedre.add(trada); nedre.add(tradb); getContentPane().add(nedre, BorderLayout.SOUTH); }//init //skriv ut textmeddelandet i textarean public void textmedd(String mess){ utskrift.append(mess); utskrift.setCaretPosition(utskrift.getText().length()); }//textmedd class TradForsta extends Thread { private boolean begin=true; public void aktiverad(boolean begin){ this.begin=begin; } public void run() { try { while(begin) { //anropar public void-text metoden varje sekund Thread.sleep(1000); textmedd("tråd1 är på G \n"); }//while } catch (InterruptedException e) {} }//run }//tradForsta class TradAndra implements Runnable { private boolean begin = true; public TradAndra() { Thread t = new Thread(this); t.start(); } public void aktiverad(boolean begin) { this.begin = begin; } public void run() { try { while(begin) { //anropar public void-text metoden varje sekund Thread.sleep(1000); textmedd("tråd2 är på G \n"); } } catch (InterruptedException e) {} } }//tradandra //Lyssnarna till trådarna class TradForstaLyssnare implements ActionListener{ public void actionPerformed(ActionEvent e){ if (trada.getText()==("Aktivera 1")){ tradforsta = new TradForsta(); tradforsta.start(); trada.setText("Deaktivera 1"); }else{ tradforsta.aktiverad(false); trada.setText("Aktivera 1"); } } }//tradforstalyssnare class TradAndraLyssnare implements ActionListener{ public void actionPerformed(ActionEvent e){ if (tradb.getText()==("Aktivera 2")){ tradandra = new TradAndra(); tradb.setText("Deaktivera 2"); }else{ tradandra.aktiverad(false); tradb.setText("Aktivera 2"); } } }//tradandralyssnare }//tradning