// Paweł Rzechonek (c) November 2005
// okno AWT: obliczanie funkcji w punkcie
// (komponenty interfejsu graficznego: Label, Button, TextField)
// (menadżer rozkładu: FlowLayuot)
// (obsługa zdarzeń akcji: ActionListener)

import java.awt.*;
import java.awt.event.*;

public class RozkladNormalny extends Frame
{
    protected TextField dane = new TextField(8);
    protected Button oblicz = new Button("oblicz");
    protected TextField wyniki = new TextField(16);

    private class Obliczenia implements ActionListener
    {
        public void actionPerformed (ActionEvent ev)
        {
            try
            {
                double x = Double.parseDouble(dane.getText());
                wyniki.setText(Double.toString(Math.exp(x*x/-2)/Math.sqrt(2*Math.PI)));
            }
            catch (NumberFormatException ex)
            {
                wyniki.setText("");
            }
            dane.setText("");
            dane.requestFocus();
        }
    }

    public RozkladNormalny ()
    {
        super("x -> exp(-x^2/2)/sqrt(2*pi)");
        addWindowListener(new WindowAdapter ()
        {
            public void windowClosing(WindowEvent ev)
            {
                RozkladNormalny.this.dispose();
            }
        });
        setLayout(new FlowLayout(FlowLayout.LEFT));
        add(new Label("dla x ="));
        add(dane);
        add(oblicz);
        add(new Label("exp(-x^2/2)/sqrt(2*pi) ="));
        add(wyniki);
        oblicz.addActionListener(new Obliczenia());
        wyniki.setEditable(false);
        setSize(720,60);
        setLocation(60,60);
        setResizable(false);
        setVisible(true);
    }

    public static void main (String[] arg)
    {
        new RozkladNormalny();
    }
}
