import java.applet.Applet;  // java applet sinifini cagir
import java.awt.*;          // java pencere kullanma sinifini cagir
import java.awt.event.*;    //  java pencereyi dinleme sinifini cagir
import bilimselhesapmakinasi1;

public class H4O1b extends Applet implements ActionListener
{
    // bilimsel hesap makinası

    TextField sonucgirdisi;
    TextField kutugirdisi;
    Button Gir,Arti,Eksi,Carpi,Bolu,M,MR,MArti,MEksi,Isaret,C;
    Button Pow,Cos,Sin,Tan,RtoD,DtoR,Acos,Asin,Atan,Exp,Kok,Kare,birBoluX;
    Button Ln,Log10,Oku,PI;
    //Button sinifi degiskenleri
    double sayi;
    bilimselhesapmakinasi1 D;
    // pencereyi baslatma metodu
    public void init()
    {
    D=new bilimselhesapmakinasi1();
    sonucgirdisi=new TextField(40);
    sonucgirdisi.setEditable(false);
    add(sonucgirdisi);
    kutugirdisi=new TextField(40);
    add(kutugirdisi);//kutuyu pencereye yerlestir
    Gir=new Button("   Gir   ");
    Oku=new Button("   Oku   ");
    Arti=new Button(" + ");
    Eksi=new Button(" - ");
    Carpi=new Button(" * ");
    Bolu=new Button(" / ");
    M=new Button("M");
    MR=new Button("MR");
    MArti=new Button("M+");
    MEksi=new Button("M-");
    Isaret=new Button("+/-");
    C=new Button("C");
    Pow=new Button("x^y");
    Cos=new Button("cos");
    Sin=new Button("sin");
    Tan=new Button("tan");
    RtoD=new Button("R->D");
    DtoR=new Button("D->R");
    Acos=new Button("acos");
    Asin=new Button("asin");
    Atan=new Button("atan");
    Exp=new Button("exp");
    Ln=new Button("ln");
    Log10=new Button("log10");
    Kok=new Button("x^0.5");
    Kare=new Button("x^2");
    birBoluX = new Button("1/x");
    PI=new Button("pi");
    Panel m=new Panel();
    m.setLayout(new GridLayout(5,8));
    m.add(Gir);
    m.add(Oku);
    m.add(Arti);
    m.add(Eksi);
    m.add(Carpi);
    m.add(Bolu);
    m.add(M);
    m.add(MR);
    m.add(MArti);
    m.add(MEksi);
    m.add(Isaret);
    m.add(C);
    m.add(Pow);
    m.add(Cos);
    m.add(Sin);
    m.add(Tan);
    m.add(DtoR);
    m.add(RtoD);
    m.add(birBoluX);
    m.add(Acos);
    m.add(Asin);
    m.add(Atan);
    m.add(Kok);
    m.add(Kare);
    m.add(Exp);
    m.add(Ln);
    m.add(Log10);
    m.add(PI);
    add(m);
    Pow.addActionListener(this);
    Cos.addActionListener(this);
    Sin.addActionListener(this);
    Tan.addActionListener(this);
    DtoR.addActionListener(this);
    RtoD.addActionListener(this);
    Acos.addActionListener(this);
    Asin.addActionListener(this);
    Atan.addActionListener(this);
    Exp.addActionListener(this);
    Ln.addActionListener(this);
    Log10.addActionListener(this);
    Gir.addActionListener(this);
    Oku.addActionListener(this);
    Arti.addActionListener(this);
    Eksi.addActionListener(this);
    Carpi.addActionListener(this);
    Bolu.addActionListener(this);
    M.addActionListener(this);
    MR.addActionListener(this);
    MArti.addActionListener(this);
    MEksi.addActionListener(this);
    Isaret.addActionListener(this);
    C.addActionListener(this);
    Kok.addActionListener(this);
    Kare.addActionListener(this);
    birBoluX.addActionListener(this);
    PI.addActionListener(this);
}

    // girdi alanindaki olan olaylari dinleme metodu
    public void actionPerformed(ActionEvent e)
    {
    String ss=kutugirdisi.getText();
    if(ss.equals("")) sayi=0.0;
    else
    {
      Double sayi1=new Double(kutugirdisi.getText() );
      sayi=sayi1.doubleValue();
    }
    if(e.getSource()==Gir)         D.gir(sayi);
    if(e.getSource()==Oku)         D.oku();
    if(e.getSource()==PI)          D.pi();
    else if(e.getSource()==Arti)   D.topla(sayi);
    else if(e.getSource()==Eksi)   D.cikar(sayi);
    else if(e.getSource()==Carpi)  D.carp(sayi);
    else if(e.getSource()==Bolu)   D.bol(sayi);
    else if(e.getSource()==M)      D.M(sayi);
    else if(e.getSource()==MR)     D.MR();
    else if(e.getSource()==MArti)  D.MTopla(sayi);
    else if(e.getSource()==MEksi)  D.Mcikar(sayi);
    else if(e.getSource()==Isaret) D.isaretdegistir(sayi);
    else if(e.getSource()==C)      D.C();
    else if(e.getSource()==Pow)    D.pow(sayi);
    else if(e.getSource()==Cos)    D.cos(sayi);
    else if(e.getSource()==Sin)    D.sin(sayi);
    else if(e.getSource()==Tan)    D.tan(sayi);
    else if(e.getSource()==RtoD)   D.RtoD(sayi);
    else if(e.getSource()==DtoR)   D.DtoR(sayi);
    else if(e.getSource()==Acos)   D.acos(sayi);
    else if(e.getSource()==Asin)   D.asin(sayi);
    else if(e.getSource()==Atan)   D.atan(sayi);
    else if(e.getSource()==Exp)    D.exp(sayi);
    else if(e.getSource()==Ln)     D.ln(sayi);
    else if(e.getSource()==Log10)  D.log10(sayi);
    else if(e.getSource()==Kok)    D.kok(sayi);
    else if(e.getSource()==Kare)   D.kare(sayi);
    else if(e.getSource()==birBoluX)  D.bir_bolu_x(sayi);
    sonucgirdisi.setText(D.toString());
    if(e.getSource()==MR || e.getSource()==M ||
    e.getSource()==MArti||e.getSource()==MEksi)
       {
       kutugirdisi.setText(D.MtoString());
       }
    else if(e.getSource()==Cos ||
    e.getSource()==Sin||e.getSource()==Tan||e.getSource()==RtoD ||
    e.getSource()==DtoR || e.getSource()==Acos || e.getSource()==Ln ||
    e.getSource()==Asin||e.getSource()==Atan||e.getSource()==Exp ||
    e.getSource()==Log10||e.getSource()==Isaret ||e.getSource()==Kok ||
    e.getSource()==Kare || e.getSource()==birBoluX || e.getSource()==Oku ||
    e.getSource()==PI)
       {
       kutugirdisi.setText(D.aratoString());
       }
    else
       {
       kutugirdisi.setText("");
       }

    }


    }

