import java.io.*;
import java.net.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import java.applet.Applet;

public class AppletClient extends JApplet implements ActionListener
{
   Container contain = getContentPane();
   
   private JTextField feel1 = new JTextField("",15);
   private JTextField feel2 = new JTextField("",15);
   private JTextField feel3 = new JTextField("",15);
   private JButton butt = new JButton("SUBMIT");
   private JTextArea area = new JTextArea();

   DataOutputStream toServer;
   DataInputStream fromServer;

   public void init()
   {
      new AppletClient();
   }

   public AppletClient()
   {
      JFrame Zoid = new JFrame("Client Exercise 2B");
      contain.setSize(700,700);
      
         	
      JPanel pFirst = new JPanel(new GridLayout(3,1));
	  
      JPanel p1 = new JPanel(new FlowLayout(FlowLayout.LEFT));
      JLabel lab1 = new JLabel("Annual Interest Rate");
      feel1.setHorizontalAlignment(JTextField.LEFT);
        p1.add(lab1);
        p1.add(feel1);
  	    
      JPanel p2 = new JPanel(new FlowLayout(FlowLayout.LEFT));
      JLabel lab2 = new JLabel("Number Of Years      ");
      feel2.setHorizontalAlignment(JTextField.LEFT);
        p2.add(lab2);
        p2.add(feel2);
        p2.add(butt);
          
      JPanel p3 = new JPanel(new FlowLayout(FlowLayout.LEFT));
      JLabel lab3 = new JLabel("Loan Amount             ");
      feel3.setHorizontalAlignment(JTextField.LEFT);
        p3.add(lab3);
        p3.add(feel3);
    
  	  add(pFirst,BorderLayout.NORTH);
  		pFirst.add(p1);
  		pFirst.add(p2);
  		pFirst.add(p3);
	  	
      contain.add(new JScrollPane(area),BorderLayout.CENTER);	
	  
      feel1.addActionListener(this);
	  feel2.addActionListener(this);
	  feel3.addActionListener(this);
	  butt.addActionListener(this);

      try
      {
		  Socket serverConnection = new Socket("Localhost",8000);

		  fromServer = new DataInputStream(serverConnection.getInputStream());
		  toServer = new DataOutputStream(serverConnection.getOutputStream());
      }

      catch(IOException ex)
      {
		  area.append(ex.toString() + '\n');
	  }
  }

  public void actionPerformed(ActionEvent e)
  {
	String actionCommand = e.getActionCommand();
	if(e.getSource() instanceof JButton)
	{
		try
		{
			double Inter = Double.parseDouble(feel1.getText().trim());
			int Year = Integer.parseInt(feel2.getText().trim());
			double Loan = Double.parseDouble(feel3.getText().trim());
			toServer.writeDouble(Inter);
			toServer.writeInt(Year);
			toServer.writeDouble(Loan);
			toServer.flush();

			area.append("Annual Interest Rate : " + Inter +'\n');
			area.append("Number Of Years : " + Year +'\n');
			area.append("Loan Amount : " + Loan +'\n');
			area.append("Monthly Payment : " + fromServer.readDouble() +'\n');
			area.append("Total Payment : " + fromServer.readDouble() +'\n');
		}
		
		catch(IOException ex)
		{
			System.err.println(ex);
		}
	}

  }

}