# Taschenrechner Hausaufgabe



## Unown (7. Okt 2021)

Guten Tag alle zusammen,
wir sollen uns als Hausaufgabe diesen Code anschauen und verstehen.
Nun habe ich das Problem, dass ich den GUI Teil super verstehe, allerdings verstehe ich nicht wo und wie hier überhaupt gerechnet wird.
Ich hoffe hier kann mir geholfen werden und ich bedanke mich in jedem Fall schonmal für die Zeit und Mühe.



[CODE lang="java" title="Taschenrechner Code"]package taschenrechner;

import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JTextField;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class Taschenrechner extends javax.swing.JFrame {
static float sum = 0f;
String s1;
public JFrame frame;
public JTextField textField;

@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 661, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 458, Short.MAX_VALUE)
);

pack();
}// </editor-fold>

public Taschenrechner() //In dieser Methode wird die Methode initialize aufgerufen
{

initialize();

}
public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
try
{
Taschenrechner window = new Taschenrechner();
window.frame.setVisible(true);
window.frame.setTitle("Taschenrechner");
}
catch (Exception e)
{
e.printStackTrace();
}
}
});
}

// Variables declaration - do not modify
// End of variables declaration

private void initialize() //Diese Methode erstellt alle nötigen Dinge
{

frame = new JFrame(); //an dieser Stelle wird das Fenster erstellt
frame.setBounds(100, 100, 500, 600);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);

JButton btnNewButton = new JButton("1"); //hier wird der 1. Knopf erstellt, dies Wiederholt sich im Code so oft, bis genügend erstellt wurden.
btnNewButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent arg0)
{
textField.setText(textField.getText()+1);

}
});
btnNewButton.setBounds(70, 265, 50, 26);
frame.getContentPane().add(btnNewButton);

JButton button = new JButton("2");
button.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{

textField.setText(textField.getText()+2);

}
});
button.setBounds(144, 265, 50, 26);
frame.getContentPane().add(button);

JButton button_1 = new JButton("3");
button_1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{

textField.setText(textField.getText()+3);

}
});
button_1.setBounds(221, 265, 50, 26);
frame.getContentPane().add(button_1);

JButton button_2 = new JButton("4");
button_2.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{

textField.setText(textField.getText()+4);

}
});
button_2.setBounds(70, 304, 50, 26);
frame.getContentPane().add(button_2);

JButton button_3 = new JButton("5");
button_3.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{

textField.setText(textField.getText()+5);

}
});
button_3.setBounds(144, 304, 50, 26);
frame.getContentPane().add(button_3);

JButton button_4 = new JButton("6");
button_4.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{

textField.setText(textField.getText()+6);

}
});
button_4.setBounds(221, 304, 50, 26);
frame.getContentPane().add(button_4);

JButton button_5 = new JButton("7");
button_5.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{

textField.setText(textField.getText()+7);

}
});
button_5.setBounds(70, 339, 50, 26);
frame.getContentPane().add(button_5);

JButton button_6 = new JButton("8");
button_6.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{

textField.setText(textField.getText()+8);

}
});
button_6.setBounds(144, 339, 50, 26);
frame.getContentPane().add(button_6);

JButton button_7 = new JButton("9");
button_7.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{

textField.setText(textField.getText()+9);

}
});
button_7.setBounds(221, 339, 50, 26);
frame.getContentPane().add(button_7);

JButton button_8 = new JButton("+");
button_8.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
textField.setText(textField.getText()+" + ");

String str = textField.getText();
String [] stringArr= str.split((" "));

if(stringArr.length == 2)
{
float i = Float.valueOf(stringArr[0]);
sum = i;

}
else if(stringArr[stringArr.length-3].equals("+"))
{
float i = Float.valueOf(stringArr[stringArr.length-2]);
sum = sum+i;
}

else if(stringArr[stringArr.length-3].equals("-"))
{
float i = Float.valueOf(stringArr[stringArr.length-2]);
sum = sum-i;
}
else if(stringArr[stringArr.length-3].equals("*"))
{
float i = Float.valueOf(stringArr[stringArr.length-2]);
sum = sum*i;
}
else if(stringArr[stringArr.length-3].equals("/"))
{
float i = Float.valueOf(stringArr[stringArr.length-2]);
sum = sum/i;
}
}
});
button_8.setBounds(293, 265, 50, 26);
frame.getContentPane().add(button_8);

JButton button_9 = new JButton("-");
button_9.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
textField.setText(textField.getText()+" - ");

// subtrahieren
String str = textField.getText();
String [] stringArr= str.split((" "));

if(stringArr.length == 2) {
float i = Float.valueOf(stringArr[0]);
sum = i;

}
}
});
button_9.setBounds(293, 304, 50, 26);
frame.getContentPane().add(button_9);


JButton button_10 = new JButton("*");
button_10.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
textField.setText(textField.getText()+" * ");

//multiplizieren
String str = textField.getText();
String [] stringArr= str.split((" "));

if(stringArr.length == 2) {
float i = Float.valueOf(stringArr[0]);
sum = i;

}
}
});
button_10.setBounds(293, 339, 50, 26);
frame.getContentPane().add(button_10);

JButton button_11 = new JButton("0");
button_11.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{

textField.setText(textField.getText()+0);
}
});
button_11.setBounds(144, 380, 50, 26);
frame.getContentPane().add(button_11);

JButton btn21 = new JButton("<");
btn21.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String s=textField.getText();
textField.setText(s.substring(0, s.length()-1));
}
});
btn21.setBounds(221, 380, 50, 26);
frame.getContentPane().add(btn21);

JButton button_12 = new JButton("/");
button_12.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
textField.setText(textField.getText()+" / ");

//dividieren
String str = textField.getText();
String [] stringArr = str.split((" "));

if(stringArr.length == 2)
{
float i = Float.valueOf(stringArr[0]);
sum = i;

}
else if(stringArr[stringArr.length-3].equals("+"))
{
float i = Float.valueOf(stringArr[stringArr.length-2]);
sum = sum+i;
}

else if(stringArr[stringArr.length-3].equals("-"))
{
float i = Float.valueOf(stringArr[stringArr.length-2]);
sum = sum-i;
}
else if(stringArr[stringArr.length-3].equals("*"))
{
float i = Float.valueOf(stringArr[stringArr.length-2]);
sum = sum*i;
}
else if(stringArr[stringArr.length-3].equals("/"))
{
float i = Float.valueOf(stringArr[stringArr.length-2]);
sum = sum/i;
}
}
});
button_12.setBounds(293, 380, 50, 26);
frame.getContentPane().add(button_12);

JButton button_13 = new JButton("=");
button_13.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{

textField.setText(textField.getText()+" = ");

String str = textField.getText();
String [] stringArr= str.split((" "));

if(stringArr.length == 2) {
float i = Float.valueOf(stringArr[0]);
sum = i;
textField.setText(textField.getText()+sum);

}
else if(stringArr[stringArr.length-3].equals("+"))
{
float i = Float.valueOf(stringArr[stringArr.length-2]);
sum = sum+i;
textField.setText(textField.getText()+sum);
}

else if(stringArr[stringArr.length-3].equals("-"))
{
float i = Float.valueOf(stringArr[stringArr.length-2]);
sum = sum-i;
textField.setText(textField.getText()+sum);
}
else if(stringArr[stringArr.length-3].equals("*"))
{
float i = Float.valueOf(stringArr[stringArr.length-2]);
sum = sum*i;
textField.setText(textField.getText()+sum);
}
else if(stringArr[stringArr.length-3].equals("/"))
{
float i = Float.valueOf(stringArr[stringArr.length-2]);
sum = sum/i;
textField.setText(textField.getText()+sum);
}

}
});
button_13.setBounds(70, 380, 50, 26);
frame.getContentPane().add(button_13);

textField = new JTextField();
textField.setBounds(70, 130, 275, 79);
frame.getContentPane().add(textField);
textField.setColumns(10);
}
}[/CODE]


----------



## mihe7 (7. Okt 2021)

Unown hat gesagt.:


> allerdings verstehe ich nicht wo und wie hier überhaupt gerechnet wird.


Hast Du den Rechner schon mal ausprobiert?


----------



## Jw456 (8. Okt 2021)

Zb in der Zeile 208 eine Addition. 
Deine Kommentare Subtraktion Dif... 
Sind nicht do sinnig. 
Denn zb unter sub sind alle vier Rechen arten.


----------



## Unown (8. Okt 2021)

mihe7 hat gesagt.:


> Hast Du den Rechner schon mal ausprobiert?


Ja der Läuft ganz normal


----------



## mihe7 (8. Okt 2021)

Unown hat gesagt.:


> Ja der Läuft ganz normal


Gut, dann weißt Du ja, wie sich der Rechner bei welchem Button verhält - und genau das wirst Du dann auch an den entsprechenden Stellen im Code finden und nachvollziehen können.


----------

