
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;

// 1. Mathe-Beispiel mit TextField und Schaltern



// Hauptfenster, abgeleitet von JFrame
public class Mathe_01 extends JFrame {

    // Elemente im Fenster, deklariert und erzeugt
   JTextArea editor = new JTextArea("");
    JButton Bntest1 = new JButton("test1");
    JButton Bntest2 = new JButton("test2");
    JButton Bntest3 = new JButton("test3");
    JButton Bntest4 = new JButton("test4");


    // Konstruktor
    public Mathe_01() {
      setSize(600, 400);
      setLocation(100,100); // Position
      setGUI();
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    // baut das Fenster, Graphical User Interface auf
    private void setGUI() {
      // setzt die Schrift
      editor.setFont( new Font("Arial", Font.BOLD,20)  );

      // fügt den Editor in das Fenster
      this.getContentPane().add( new JScrollPane(editor), BorderLayout.CENTER);
      // setzt die Schriften für die Schalter  Button
      Bntest1.setFont( new Font("Arial", Font.BOLD,18)  );
      Bntest2.setFont( new Font("Arial", Font.BOLD,18)  );
      Bntest3.setFont( new Font("Arial", Font.BOLD,18)  );
      Bntest4.setFont( new Font("Arial", Font.BOLD,18)  );

      // zusätzlicher Container, für die drei Schalter
      JPanel pn = new JPanel();
      pn.setLayout ( new FlowLayout() );
      pn.add(Bntest1);
      pn.add(Bntest2);
      pn.add(Bntest3);
      pn.add(Bntest4);

      // zusätzlicher Container in das Fenster einfügen
      this.getContentPane().add(pn, BorderLayout.NORTH);

      // Click-Methode definieren
      Bntest1.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(ActionEvent e) {
          Bntest1_Click();
        }
      });
      // Click-Methode definieren
      Bntest2.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(ActionEvent e) {
          Bntest2_Click();
        }
      });
      // Click-Methode definieren
      Bntest3.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(ActionEvent e) {
          Bntest3_Click();
        }
      });
      // Click-Methode definieren
      Bntest4.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(ActionEvent e) {
          Bntest4_Click();
        }
      });
    } // setGUI



   // Click-Methode mit Code füllen
  private void Bntest1_Click() {
    float a,b,c,d,e,f;
      a= 1;
      b= 1.000001f;
      c= 0.999999f;
      f= 0.999998f;
      d= b-a;
      e= c-f;
      editor.setText(   "d= "+d+ "\n+e= "+ e +"\n\nExakt wäre aber das Ergebnis 1.0000000000E-06.");
  }

   // Click-Methode mit Code füllen
  private void Bntest2_Click() {
    float a,s1, s2;
      a= 0.3f;
      s1=0;
      for (int i=0; i<10; i++)
        s1+=a;
      s2=a*10;
      editor.setText(   "1. Summe= "+s1+ "\n2. Summe= "+s2);
  }

   // Click-Methode mit Code füllen
  private void Bntest3_Click() {
    double a,s1, s2;
      a= 0.3f;
      s1=0;
      for (int i=0; i<10; i++)
        s1+=a;
      s2=a*10;
      editor.setText(   "1. Summe= "+s1+ "\n2. Summe= "+s2);
  }

   // Click-Methode mit Code füllen
  private void Bntest4_Click() {
    float  y, ya, ysw, ye;
      ya=0.0f;
      ysw= 0.4f;  // Schrittweite
      ye=3.2f;
      y=ya;
      editor.setText(   "Zahlendarstellung an der Y-Achse");
      while (y <= ye) {
        editor.append(   "\n" + y);
        y = y + ysw;
      }
      editor.append(   "\n\nDie Achsbeschriftung 3,2 wurde nicht gezeichnet" );
  }

  //Überschreiben, damit das Programm bei Herunterfahren des Systems beendet werden kann
  protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if(e.getID() == WindowEvent.WINDOW_CLOSING) {
      System.exit(0);
    }
  }  // jbinit2

  public static void main(String[] args) {
    Mathe_01 frame = new Mathe_01();
    frame.setVisible(true);
 }

}



