import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class testThread extends JFrame implements ActionListener,Runnable
{	JLabel l1,l2;
        JButton b1,b2,b3,b4,b5,b6;
        textThread text1,text2;
        Font f1;
        Thread tt,t1,t2;
        public testThread()
        {	Dimension d=getToolkit().getScreenSize();
			int width=(d.width)/2;
            int height=(d.height)/2;
            width=width-150;
			height=height-100;
            setLocation(width,height);    
			tt=new Thread(this,"title");
            tt.start();
            f1=new Font("Serif",Font.PLAIN,14);
			text1=new textThread("text1",2);
			text2=new textThread("text2",1);
			t1=new Thread(text1);
			t2=new Thread(text2);
            l1=new JLabel("   T1 is a live",JLabel.CENTER); 
            l2=new JLabel("   T2 is a live",JLabel.CENTER);
            b1=new JButton("Kill T1");
            b2=new JButton("Pause T1");
			b3=new JButton("Play T1");
			b4=new JButton("Kill T2");
			b5=new JButton("Pause T2");
			b6=new JButton("Play T2");
			l1.setFont(f1);
			l2.setFont(f1);
			b1.setFont(f1);
			b2.setFont(f1);
			b3.setFont(f1);
			b4.setFont(f1);
			b5.setFont(f1);
			b6.setFont(f1);
			Container c=getContentPane();
			c.setLayout(new GridLayout(2,5,5,5));
			c.add(text1);
			c.add(l1);
			c.add(b1);
			c.add(b2);
			c.add(b3);
			c.add(text2);
			c.add(l2);
			c.add(b4);
			c.add(b5);
			c.add(b6);
			t1.start();
			t2.start();
			b1.addActionListener(this);
			b2.addActionListener(this);
			b3.addActionListener(this);
			b4.addActionListener(this);
			b5.addActionListener(this);
			b6.addActionListener(this);
			addWindowListener(new WindowAdapter()
			{	public  void  windowClosing(WindowEvent e)
		        {	dispose();
					System.exit(0);
		        }
			});
        }
		public void actionPerformed(ActionEvent e)
		{	String ev=e.getActionCommand();
			if(ev.equals("Kill T1"))
			{	t1.stop();
				l1.setText("T1 Dead");
				b1.setBackground(Color.yellow);
				b2.setBackground(null);
				b3.setBackground(null);
				b2.setEnabled(false);
				b3.setEnabled(false);
			}
			else if (ev.equals("Kill T2"))
			{	t2.stop();
				b4.setBackground(Color.yellow);
				b5.setBackground(null);
                b6.setBackground(null);
				l2.setText("T2 Dead");
				b5.setEnabled(false);
				b6.setEnabled(false);
			}
			else if(ev.equals("Pause T1"))
			{	t1.suspend();
				b2.setBackground(Color.yellow);
				b3.setBackground(null);
				b2.setEnabled(false);
				b3.setEnabled(true);
        	}
			else if(ev.equals("Pause T2"))
			{	t2.suspend();
				b5.setBackground(Color.yellow);
				b6.setBackground(null);
				b5.setEnabled(false);
				b6.setEnabled(true);
			}
			else if(ev.equals("Play T1"))
			{	t1.resume();
				b3.setBackground(Color.yellow);
				b2.setBackground(null);
			    b3.setEnabled(false);
			    b2.setEnabled(true);
			}
			else if(ev.equals("Play T2"))
			{	t2.resume();
				b6.setBackground(Color.yellow);
				b5.setBackground(null);
			    b6.setEnabled(false);
			    b5.setEnabled(true);
			}    
        }
        public void run()
        {	String title="                     Hello World my name is Adison this program is very hard for me but i don't care !";
			int m,i=0;
			String shows;
            while(true)
			{	m=i+20;
		        if (i>=title.length())
		        {	i=0;
		            m=20;
		        }
		        if (m>=title.length())
		        {	m=(title.length());
		        }
		        shows=title.substring(i,m);
		        try
                {	tt.sleep(200);
		        }
                catch(InterruptedException e)
                {;
                 }
		        setTitle(shows);
		        i++;
			}
        }
        public static void main(String arg[])
        {	testThread n=new testThread();
			n.pack();
			n.setVisible(true);
        }
}