[code]
import java.awt.Color;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Rechner extends JFrame
{
//Hier werden saemtliche Objekte, die wir benoetigen deklariert und die Buttons bereits erstellt.
private static final long serialVersionUID = 1L;
JLabel erg,ergebnis,operand1,operand2;
JTextField eingabe,eingabe2;
JButton b1=new JButton("Addieren"),b2=new JButton("Subtrahieren"),b3=new JButton("Multiplizieren"),b4=new JButton("Dividieren"),b5=new JButton("Alles loeschen");
String a[]={"Rechner","Quersumme","Wurzel"};
JComboBox Auswahl=new JComboBox(a);
Container c;
JPanel p1=new JPanel();
public Rechner(String titel)//Konstruktor
{
//Hinzufuegen saemtlicher Objekte
c=getContentPane();
setSize(500,200);
setLocation(200, 200);
c.setLayout(new GridLayout(3,4));
c.add(p1.add(Auswahl),Container.TOP_ALIGNMENT);
c.add(Auswahl);
Auswahl.addActionListener(new ChangeListener());
//Auswahl.setActionCommand("Quersumme");
c.add(operand1=new JLabel("Operand 1:",JLabel.RIGHT));
c.add(eingabe=new JTextField(10));
c.add(operand2=new JLabel("Operand 2:",JLabel.RIGHT));
c.add(eingabe2=new JTextField(10));
c.add(b1);
b1.addActionListener(new OperatorListener('+'));
c.add(b2);
b2.addActionListener(new OperatorListener('-'));;
c.add(b3);
b3.addActionListener(new OperatorListener('*'));
c.add(b4);
b4.addActionListener(new OperatorListener('/'));
b5.addActionListener(new OperatorListener('l'));
c.add(b5);
c.add(ergebnis=new JLabel("Ergebnis:",JLabel.RIGHT));
c.add(erg=new JLabel());
erg.setOpaque(true);
erg.setBackground(Color.WHITE);
c.add(b5);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args)
{
new Rechner("Rechner");
}
/*public*/ class Quersumme_grafisch extends JFrame implements ActionListener
{
private static final long serialVersionUID = 1L;
JTextField tf1,tf2;
JLabel l1,l2,l3;
JButton b1,b2;
Container c;
public Quersumme_grafisch(String titel)
{
c=getContentPane();
setLayout(new GridLayout(2,3));
setSize(750,150);
setLocation(200,200);
c.add(l1=new JLabel("Zahl1"));
l1.setToolTipText("Ihre Eingabe muss kleiner oder gleich 100 sein");
c.add(tf1=new JTextField(10));
c.add(l2=new JLabel("Zahl2"));
l2.setToolTipText("Ihre Eingabe muss kleiner oder gleich 100 sein");
c.add(tf2=new JTextField(10));
c.add(b1=new JButton("berechne Quersumme"));
b1.addActionListener(this);
c.add(b2=new JButton("Clear"));
b2.addActionListener(this);
c.add(l2=new JLabel("Die Quersumme ist: "));
c.add(l3=new JLabel());
l3.setOpaque(true);
l3.setBackground(Color.WHITE);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
@Override
public void actionPerformed(ActionEvent ae)
{
int zahl1=Integer.parseInt(tf1.getText());
int zahl2=Integer.parseInt(tf2.getText());
if(ae.getActionCommand().equals("berechne Quersumme"))
{
int Quersumme=((zahl1/10)+(zahl1%10))+((zahl2/10)+(zahl2%10));
l3.setText(""+Quersumme);
}
else if(ae.getActionCommand().equals("Clear"))
{
tf1.setText("");
tf2.setText("");
l3.setText("");
}
}
}
class ChangeListener implements ActionListener
{
@Override
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand().equals(Auswahl.getSelectedItem().equals("Rechner")))
{
new Rechner("Rechner");
}
else if(e.getActionCommand().equals(Auswahl.getSelectedItem().equals("Quersumme")))
{
dispose();
new Quersumme_grafisch("Quersummenrechner");
}
}
}
class OperatorListener implements ActionListener
{
char operation;
OperatorListener (char operation)//Konstruktor der OperatorListener Klasse wird erstellt und ihm wird nur ein wert uebergeben, der char operation
{
this.operation=operation;
}
@Override
public void actionPerformed(ActionEvent e) //Dieser wird folglich auch fuer die einzelnen Abfragen verwendet wenn die speziellen knoepfe gedrueckt werden
{
if(operation=='l')
{
erg.setText("");
eingabe.setText("");
eingabe2.setText("");
return;
}
try
{
double operator1=Double.parseDouble(eingabe.getText());//Double.valueOf(eingabe.getText()).doubleValue();
double operator2=Double.parseDouble(eingabe2.getText());//Double.valueOf(eingabe2.getText()).doubleValue();
double erg;
if(operation=='+')
{
erg=operator1+operator2;
Rechner.this.erg.setText(""+erg);
}
else if(operation=='-')
{
erg=operator1-operator2;
Rechner.this.erg.setText(""+erg);
}
else if(operation=='*')
{
erg=operator1*operator2;
Rechner.this.erg.setText(""+erg);
}
else //(operation=='/')
{
erg=operator1/operator2;
Rechner.this.erg.setText(""+erg);
}
// else
// System.out.println("Fehler");
}
catch(NumberFormatException nfe)
{
JOptionPane.showMessageDialog(null,"Bitte geben Sie ihre eingabe in einem anderen Format ein");
}
}
}
}