/* * MyApplet * * Version 1.0 * * 20061003 * * Author: Jenny Nordgren */ /** * MyApplet är en applet som låter användaren starta, pausa, * återuppta och stoppa två trådar som skriver ut ett meddelande. * Detta görs genom att trycka på en av de fyra knappar som styr händelserna. * */ import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class MyApplet extends JApplet implements ActionListener { private JButton knapp1 = new JButton("Starta Tråd 1"); private JButton knapp2 = new JButton("Starta Tråd 2"); private JButton knapp3 = new JButton("Pausa Tråd 1"); private JButton knapp4 = new JButton("Pausa Tråd 2"); private JTextArea printarea = new JTextArea(); private T1 thread1; private T2 thread2; /** * init-metoden skapar och ritar ut det grafiska gränssnittet. */ public void init() { Container con = getContentPane(); con.setLayout(new BorderLayout()); knapp1.addActionListener(this); knapp2.addActionListener(this); knapp3.addActionListener(this); knapp4.addActionListener(this); knapp3.setEnabled(false); knapp4.setEnabled(false); JPanel panel = new JPanel(new FlowLayout()); JScrollPane scroller = new JScrollPane(printarea); scroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); panel.add(knapp1); panel.add(knapp2); panel.add(knapp3); panel.add(knapp4); con.add(panel, BorderLayout.SOUTH); con.add(scroller, BorderLayout.CENTER); setSize(600, 600); setVisible(true); } /** * Tom startmetod eftersom det inte verkar behövas något här */ public void start() { } /** * Tom stopmetod eftersom det inte verkar behövas något här */ public void stop() { } /** * Tom destroymetod eftersom det inte verkar behövas något här */ public void destroy() { } /** * actionPerformed är den metod som implementeras från Interfacet ActionListener. Beroende på vilken * knapp användaren trycker på så kan knapparna få ny text, aktiveras eller avaktiveras samt att knapparna * styr de två trådarna som kan påverkas enligt knapptexten. * */ public void actionPerformed(ActionEvent e) { if(e.getActionCommand().equalsIgnoreCase("Starta Tråd 1")){ knapp1.setText("Stoppa Tråd 1"); knapp3.setEnabled(true); thread1 = new T1(printarea); } if(e.getActionCommand().equalsIgnoreCase("Starta Tråd 2")){ knapp2.setText("Stoppa Tråd 2"); knapp4.setEnabled(true); thread2 = new T2(printarea); } if(e.getActionCommand().equalsIgnoreCase("Stoppa Tråd 1")){ knapp1.setText("Starta Tråd 1"); knapp1.setEnabled(false); knapp3.setEnabled(false); thread1.interrupt(); } if(e.getActionCommand().equalsIgnoreCase("Stoppa Tråd 2")){ knapp2.setText("Starta Tråd 2"); knapp2.setEnabled(false); knapp4.setEnabled(false); thread2.interrupt(); } if(e.getActionCommand().equalsIgnoreCase("Pausa Tråd 1")){ knapp3.setText("Återuppta Tråd 1"); thread1.pause(); } if(e.getActionCommand().equalsIgnoreCase("Pausa Tråd 2")){ knapp4.setText("Återuppta Tråd 2"); thread2.pause(); } if(e.getActionCommand().equalsIgnoreCase("Återuppta Tråd 1")){ knapp3.setText("Pausa Tråd 1"); thread1.unpause(); } if(e.getActionCommand().equalsIgnoreCase("Återuppta Tråd 2")){ knapp4.setText("Pausa Tråd 2"); thread2.unpause(); } } }