import java.awt.*; //abstract windowing toolkit
import javax.swing.*; //swing-Klassen
import java.awt.event.*; //Event-Klassen
public class Bruch extends JFrame implements ActionListener
{
private String [] s = {"+","-","/","*","kuerz1","kuerz2","gln.","--","++"};
private JButton [] jb = new JButton[s.length];
private JTextField jtf1,jtf2,jtf3,jtf4,jtf5,jtf6; //Deklaration eines Objektes aus der Klasse JTextField
private Font f;
private int zaehler ;
private int nenner ;
private int zaehler2;
private int nenner2;
private int zaehler3;
private int nenner3;
private int teiler;
public Bruch()
{
super("Mein erstes Fenster"); //ruft den Konstruktor der Oberklasse (JFrame) auf
setDefaultCloseOperation(3); //schließen und alle Prozesse beenden
setLayout(null); //schaltet Layout Manager aus
setBounds(300,200,1000,700); //(x,y Breite,Höhe) vom Fenster
getContentPane().setBackground(new Color(198,44,58)); //RGB
jtf1 = new JTextField(); //Instanziieren eines neuen Objekts der Klasse JTextField
f = new Font("Roman",1,20);
jtf1.setFont (f);
jtf1.setText("");
jtf1.setEditable(true);
jtf1.setBounds(100,300,90,60); //am Objekt selber wird Methode aufgerufen
add(jtf1); //fügt Objekt dem Cont ainer (=ContentPane) hinzu
setVisible(true); //schaltet ganzen JFrame auf SICHTBAR
setResizable(false) ;
jtf2 = new JTextField(); //Instanziieren eines neuen Objekts der Klasse JTextField
jtf2.setFont (f);
jtf2.setText("");
jtf2.setEditable(true);
jtf2.setBounds(100,390,90,60); //am Objekt selber wird Methode aufgerufen
add(jtf2); //fügt Objekt dem Container (=ContentPane) hinzu
jtf3 = new JTextField();
jtf3.setFont (f);
jtf3.setText("");
jtf3.setEditable(true);
jtf3.setBounds(500,300,90,60); //am Objekt selber wird Methode aufgerufen
add(jtf3);
jtf4 = new JTextField();
jtf4.setFont (f);
jtf4.setText("");
jtf4.setEditable(true);
jtf4.setBounds(500,390,90,60); //am Objekt selber wird Methode aufgerufen
add(jtf4);
jtf5 = new JTextField();
jtf5.setFont (f);
jtf5.setText("");
jtf5.setEditable(false);
jtf5.setBounds(800,300,90,60); //am Objekt selber wird Methode aufgerufen
add(jtf5);
jtf6 = new JTextField();
jtf6.setFont (f);
jtf6.setText("");
jtf6.setEditable(false);
jtf6.setBounds(800,390,90,60); //am Objekt selber wird Methode aufgerufen
add(jtf6);
for (int i=0;i<jb.length;i++) {
jb[i] =new JButton(s[i]);
jb[i].setBounds(230+(i%3)*80,270+(i/3)*80,60,60);
add(jb[i]);
jb[i].addActionListener(this);
}
}
public int GGT(int k , int n) {
if (n==0) return k;
if (k==0) return n;
if (n==k) return k;
if (n>k) return GGT (k , n-k) ;
return GGT (n , k-n) ;
}
public void actionPerformed(ActionEvent e) {
if (e.getSource()==jb[0]) { //Addition
int zaehler=new Integer (jtf1.getText());
int zaehler2=new Integer (jtf2.getText());
int nenner=new Integer (jtf3.getText());
int nenner2=new Integer(jtf4.getText());
int zaehler3=new Integer(jtf5.getText());
int nenner3=new Integer(jtf6.getText());
addi(zaehler3,nenner3);
}
if (e.getSource()==jb[1]) { //Subtraktion
int zaehler=new Integer (jtf1.getText());
int zaehler2=new Integer (jtf2.getText());
int nenner=new Integer (jtf3.getText());
int nenner2=new Integer(jtf4.getText());
int zaehler3=new Integer(jtf5.getText());
int nenner3=new Integer(jtf6.getText());
sub(zaehler3,nenner3);
}
if (e.getSource()==jb[2]) { //Division
int zaehler=new Integer (jtf1.getText());
int zaehler2=new Integer (jtf2.getText());
int nenner=new Integer (jtf3.getText());
int nenner2=new Integer(jtf4.getText());
int zaehler3=new Integer(jtf5.getText());
int nenner3=new Integer(jtf6.getText());
div(zaehler3,nenner3);
}
if (e.getSource()==jb[3]) { //Multiplikation
int zaehler=new Integer (jtf1.getText());
int zaehler2=new Integer (jtf2.getText());
int nenner=new Integer (jtf3.getText());
int nenner2=new Integer(jtf4.getText());
int zaehler3=new Integer(jtf5.getText());
int nenner3=new Integer(jtf6.getText());
mult(zaehler3 , nenner3);
}
}
public void kuerzen (int zaehler3 , int nenner3) {
jtf2.setText(""+nenner/GGT(nenner , zaehler));
jtf1.setText(""+zaehler/GGT(nenner , zaehler));
}
public void kuerzen2 (int zaehler3 , int nenner3) {
jtf3.setText(""+nenner2/GGT(nenner2 , zaehler2));
jtf4.setText(""+zaehler2/GGT(nenner2 , zaehler2));
}
public void addi(int zaehler3 , int nenner3) {
int teiler=GGT(nenner,nenner2);
zaehler/=teiler;
nenner/=teiler;
jtf5.setText(zaehler+=zaehler2);
jtf6.setText(nenner=nenner2);
}
public void sub(int zaehler3 , int nenner3) {
int teiler=GGT(nenner,nenner2);
zaehler/=teiler;
nenner/=teiler;
jtf5.setText(zaehler-=zaehler2);
jtf6.setText(nenner=nenner2);
}
public void div(int zaehler3 , int nenner3) {
zaehler2=nenner2;
nenner2=zaehler2;
jtf5.setText(zaehler*zaehler2);
jtf6.setText(nenner*nenner2);
}
public void mult(int zaehler3 , int nenner3) {
jtf5.setText(zaehler*zaehler2);
jtf6.setText(nenner*nenner2);
}
}