M
milo24
Gast
Hallo.
Ich habe 2 Klassen programmiert, erstens die Klasse Komplex die zuerst mit fixen Werten gerechnet hat.(addiert,subtrahiert, multipliziert, dividiert, potenziert, wurzel)
Später hab ich dann einen Taschenrechner gemacht der aber nur Arithmetische Werte berechnet.Dieser Taschenrechner hat eine graphische Oberfläche in denen ich Werte eingeben kann.
Jetzt würde ich gerne die Eingabezellen von der Klasse TaRe(=Taschenrechner) verwenden um die Werte in der Klasse Komplex weiter zu rechnen.
Wie übergebe ich die Werte der Eingabefelder von der Klasse TaRe in die Klasse Komplex?
Und wie liefert die Klasse Komplex die Ergebnisse wieder zurück an die Klasse TaRe zur ausgabe?
Ich habe 2 Klassen programmiert, erstens die Klasse Komplex die zuerst mit fixen Werten gerechnet hat.(addiert,subtrahiert, multipliziert, dividiert, potenziert, wurzel)
Später hab ich dann einen Taschenrechner gemacht der aber nur Arithmetische Werte berechnet.Dieser Taschenrechner hat eine graphische Oberfläche in denen ich Werte eingeben kann.
Jetzt würde ich gerne die Eingabezellen von der Klasse TaRe(=Taschenrechner) verwenden um die Werte in der Klasse Komplex weiter zu rechnen.
Wie übergebe ich die Werte der Eingabefelder von der Klasse TaRe in die Klasse Komplex?
Und wie liefert die Klasse Komplex die Ergebnisse wieder zurück an die Klasse TaRe zur ausgabe?
Code:
import java.awt.*;
import java.awt.event.*;
import java.lang.Math;
/**
* Write a description of class TaRe here.
*
* @Milosavljevic Danijel
* @12.April.2007
*/
public class TaRe extends Frame implements WindowListener, ActionListener
{
Button add, sub, mul, div, sqrt, hoch;
Label re1, im1, op, re2, im2, gleich, ergebnis;
TextField eingabe1, eingabe2, eingabe3, eingabe4;
public TaRe()
{
add = new Button("+");
sub = new Button("-");
mul = new Button("*");
div = new Button("/");
hoch= new Button("x²");
sqrt = new Button("sqrt");
re1 = new Label("Realteil 1");
im1 = new Label("Imaginärteil 1");
op = new Label("Operator");
re2 = new Label("Realteil 2");
im2 = new Label("Imaginärteil 2");
gleich = new Label("=");
ergebnis = new Label("Ergebnis");
eingabe1 = new TextField("Eingabe-Realteil 1");
eingabe2 = new TextField("Eingabe-Imaginärteil 1");
eingabe3 = new TextField("Eingabe-Realteil 2");
eingabe4 = new TextField("Eingabe-Imaginärteil 2");
GridLayout grid = new GridLayout();
add(add); add(sub); add(mul); add(div); add(hoch); add(sqrt); add(eingabe1); add(eingabe2); add(eingabe3); add(eingabe4); add(re1); add(im1); add(op); add(re2); add(im2); add(gleich); add(ergebnis);
setBackground(Color.white);
addWindowListener(this);
setLayout(new GridLayout(3,9)); //Tare ein Layout zuweisen
add.addActionListener(this);
sub.addActionListener(this);
mul.addActionListener(this);
div.addActionListener(this);
sqrt.addActionListener(this);
hoch.addActionListener(this);
}
public void actionPerformed(ActionEvent ae)
{
int v, w, x, y, z;
String help1 = eingabe1.getText();
v = Integer.parseInt(help1); //String in Zahl umwandeln
String help2 = eingabe2.getText();
w = Integer.parseInt(help2); //String in Zahl umwandeln
String help3 = eingabe3.getText();
x = Integer.parseInt(help3); //String in Zahl umwandeln
re1.setText(Integer.toString(x));
String help4 = eingabe4.getText();
y = Integer.parseInt(help4);
re2.setText(Integer.toString(y));
if(ae.getSource()==add)
{
op.setText("+");
z=x+y;
ergebnis.setText(Integer.toString(z));
}
if(ae.getSource()==sub)
{
op.setText("-");
z=x-y;
ergebnis.setText(Integer.toString(z));
}
if(ae.getSource()==mul)
{
op.setText("*");
z=x*y;
ergebnis.setText(Integer.toString(z));
}
if(ae.getSource()==div)
{
op.setText("/");
z=x/y;
ergebnis.setText(Integer.toString(z));
}
if(ae.getSource()==hoch)
{
op.setText("x²");
z=x*x;
ergebnis.setText(Integer.toString(z));
}
if(ae.getSource()==sqrt)
{
op.setText("Wurzel");
double sqrt= Math.sqrt(x);
ergebnis.setText(Double.toString(sqrt));
}
}
public void windowOpened(WindowEvent we){}
public void windowClosing(WindowEvent we)
{
System.exit(0);
}
public void windowClosed(WindowEvent we){}
public void windowIconified(WindowEvent we){}
public void windowDeiconified(WindowEvent we){}
public void windowActivated(WindowEvent we){}
public void windowDeactivated(WindowEvent we){}
public static void main()
{
TaRe f1 = new TaRe();
f1.setSize(1024,768);
f1.setLocation(250,100);
f1.setVisible(true);
f1.setTitle("Taschenrechner");
}
// public void setreal(double real)
// {
// eingabe1=real;
// }
}
Code:
public class Komplex
{
// instance variables
private double r; // erzeugen des Realteils
private double i; // erzeugen des Imaginärteils
/**
* Standardkonstruktor
*/
public Komplex()
{
r=1; // Als Standartwert kriegt die Variable r den Wert 1
i=1; // Als Standartwert kriegt die Varibale i den Wert 1
}
/**
* Konstruktor für die komplexen kartesischen Zahlen
* mit dieser Funktion kann man selber aussuchen was für ein Wert die beiden
* Variablen (Realteil und Imaginärteil) haben sollen
*/
public Komplex(double real, double imag)
{
r=real;
i=imag;
}
/**
* Konstruktor für Zahlen ohne Imaginärteil (Imaginaerteil = 0)
* mit dieser Funktion kann man selber aussuchen was für ein Wert der
* Realteil haben sollen
* Der Imaginärteil ist fix 0
*/
public Komplex(double real)
{
r=real;
i=0;
}
/**
* Diese Methode kann addieren
*
* @param b besitzt Realteil und Imaginaerteil
* @return new Komplex(real, imag) Liefert das Ergebnis einer Addition von 2 komplexen Zahlen
*/
public Komplex addition (Komplex b)
{
Komplex a = this;
double real = a.r + b.r;
double imag = a.i + b.i;
return new Komplex(real, imag);
}
/**
* Diese Methode kann subtrahieren
*
* @param b besitzt Realteil und Imaginaerteil
* @return new Komplex(real, imag) Liefert das Ergebnis einer Subtrakion von 2 komplexen Zahlen
*/
public Komplex subtraktion (Komplex b)
{
Komplex a = this;
double real = a.r - b.r;
double imag = a.i - b.i;
return new Komplex(real, imag);
}
/**
* Diese Methode kann multiplizieren
*
* @param b besitzt Realteil und Imaginaerteil
* @return new Komplex(real, imag) Liefert das Ergebnis einer Multiplikation von 2 komplexen Zahlen
*/
public Komplex multiplikation (Komplex b)
{
Komplex a = this;
double real = a.r * b.r - a.i * b.i;
double imag = a.r * b.i + a.i * b.r;
return new Komplex(real, imag);
}
public Komplex multiplikation (double b)
{
return new Komplex(b * r, b * i);
}
/**
* Diese Methode kann Wurzeln ziehen
*
* @param b besitzt Realteil und Imaginaerteil
* @return wurz Liefert die Wurzel aus einer komplexen Zahl
*/
public Komplex wurzel (Komplex b)
{
Komplex a = this;
Komplex wurz = a;
wurz = a.multiplikation(a);
return wurz;
}
/**
* Diese Methode kann potenzieren
*
* @param b besitzt Realteil und Imaginaerteil
* @return potz Potenzieren einer komplexen Zahl
*/
public Komplex potenz(double b)
{
Komplex a = this;
Komplex potz = a;
potz.r=Math.pow(a.r, b);
potz.i=a.i/b;
return potz;
}
/**
* Mit dieser Methode kann man der Variable einen Wert zuweisen
*
* @param real Realteil
* @return -
*/
public void setreal(double real)
{
r=real;
}
/**
* Mit dieser Methode kann man der Variable einen Wert zuweisen
*
* @param imag Imaginärteil
* @return -
*/
public void setimag(double imag)
{
i=imag;
}
/**
* Liefert den Wert der Variable
*
* @param -
* @return r Realteil
*/
public String getreal()
{
return ""+r;
}
/**
* Liefert den Wert der Variable
*
* @param -
* @return i Imaginaerteil
*/
public String getimag()
{
return ""+r+"j";
}
}