# Applet das einen Mittelwert ausrechnen soll



## jeki (30. Jan 2006)

Hallo
Ich bin dabei die Nerven zu verlieren  (':autsch:')

*Blutiger Anfänger*

Die Klasse Mittelwert greift auf die Klasse Mittelwertrechner zurück und soll dort das Ergebnis auslesen.
Gestern hat sich das Applet gezeigt und ich konnte die Funktion nutzen. Dann habe ich das ganze in eine andere Datei gespeichert(als Backup) um weiter mit der anderen zu probieren und seit dem geht es nicht mehr. Es kommen diese Meldungen. Was ich übersehen habe  ???? Ich weiß es nicht (':x')
Kann Bitte jemand den Code checken und mir einige Tipps geben?!

Wie kann ich die Meldungen vom Compiler werten?

Compile K:\EinsendeaufgabenJAV04N\Java\Lernheft\Jav04N\Aufgabe1\Mittelwert.java....
K:\EinsendeaufgabenJAV04N\Java\Lernheft\Jav04N\Aufgabe1\Mittelwert.java:27: cannot resolve symbol
symbol  : constructor Mittelwertrechner  ()
location: class Mittelwertrechner
        rechner = new Mittelwertrechner();
                  ^
K:\EinsendeaufgabenJAV04N\Java\Lernheft\Jav04N\Aufgabe1\Mittelwert.java:67: ueberpruefe(java.lang.String,java.lang.String) in Mittelwertrechner cannot be applied to ()
	rechner.ueberpruefe();
               ^
K:\EinsendeaufgabenJAV04N\Java\Lernheft\Jav04N\Aufgabe1\Mittelwert.java:106: cannot resolve symbol
symbol  : method uebepruefe  (java.lang.String,java.lang.String)
location: class Mittelwertrechner
	ok=rechner.uebepruefe(strZahl1, strZahl2);
                  ^
K:\EinsendeaufgabenJAV04N\Java\Lernheft\Jav04N\Aufgabe1\Mittelwert.java:108: cannot resolve symbol
symbol  : method Mittelwertrechner  ()
location: class Mittelwertrechner
	mittelwert=rechner.Mittelwertrechner();
                          ^
4 errors

Compilierung beendet 

*Das ist der Code der Klasse Mittelwert*


```
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;

public class Mittelwert extends Frame 
implements ActionListener, WindowListener	{
	
	
	Label labText1;
	TextField tfZahl1, tfZahl2, tfMittelwert;
	Button bRechne, bLoeschen; 
	
	//Die Schrifteinstellungen
	Font fntFett = new Font ("SansSerif", 1, 12);
    Mittelwertrechner rechner;  
    double strErgebnis;
    double mittelwert;
    private String strZahl1="";
    private String strZahl2="";
    
    
	public Mittelwert()	{
		
		setLayout(null);
		setSize (400,400);
        addWindowListener (this);
        rechner = new Mittelwertrechner();
			
	// Text " Dieses Applet berechnet Mittelwerte "
	labText1 = new Label("Dieses Applet berechnet Mittelwerte");
	labText1.setFont(fntFett);
	labText1.setBounds(40,35,350,25);
	add(labText1);	
		
	// Textfeld für Zahl 1
	tfZahl1 = new TextField(" ");
	tfZahl1.setBounds(40,85,114,25);
	add(tfZahl1);
	
	// Textfeld für Zahl 2
	tfZahl2 = new TextField(" ");
	tfZahl2.setBounds(165,85,114,25);
	add(tfZahl2);
	
	// Button " Rechne "
	bRechne = new Button("Rechne Mittelwert");
	bRechne.setFont(fntFett);
	
	bRechne.setBounds(103,140,114,25);
	bRechne.addActionListener(this);
    add(bRechne);
		
	// Textfeld für den Mittelwert
	tfMittelwert = new TextField(" ");
	tfMittelwert.setBounds(103,190,114,25);
	add(tfMittelwert);
		
	// Button " Löschen "
	bLoeschen = new Button("Löschen");
	bLoeschen.setFont(fntFett);

	bLoeschen.setBounds(103,240,114,25);
	bLoeschen.addActionListener(this);
	add(bLoeschen);
	
	setVisible (true);
	rechner.ueberpruefe();
}

public static void main(String [] args){
	Mittelwert wert = new Mittelwert();
}       	

//Methode aus ActionListener:
public void actionPerformed (ActionEvent e){
	
	if (e.getSource() == bRechne){
		rechneClicked();
	}

	if (e.getSource() == bLoeschen){
		loeschenClicked();
}	
}

//Methoden des WindowListener
public void windowClosing (WindowEvent e){
	dispose ();
	System.exit (0);
}
public void windowClosed (WindowEvent e) {}
public void windowOpened (WindowEvent e) {}
public void windowActivated (WindowEvent e) {}
public void windowDeactivated (WindowEvent e) {}
public void windowIconified (WindowEvent e) {}
public void windowDeiconified (WindowEvent e) {}

//dieser Code berechnet den Mittelwert
private void rechneClicked(){

	//bRechne.append("\"Rechnen\" geklickt\n");

	boolean ok = true;
	strZahl1=tfZahl1.getText();
	strZahl2=tfZahl2.getText();
	ok=rechner.uebepruefe(strZahl1, strZahl2);
if (ok)
	mittelwert=rechner.Mittelwertrechner();
	if(mittelwert < 0){
		String strErgebnis = String.valueOf(mittelwert);
		tfMittelwert.setText(strErgebnis);
	}
}

// Dieser Code löscht die Einträge
private void loeschenClicked(){
	tfZahl1.setText("");
	tfZahl2.setText("");
	tfMittelwert.setText("");
}
}
```

*Hier ist der Code der Klasse Mittelwertrechner*



```
// Dieser Code berechnet den Mittelwert
public class Mittelwertrechner extends Object
{
	double a;
	double b;
	double mittelwert;
	private String strZahl1="";
	private String strZahl2="";
	Mittelwertrechner Mittelwertrechner;
	
	
public Mittelwertrechner(double a, double b)
{
	a = Double.parseDouble(strZahl1);
	b = Double.parseDouble(strZahl2);
	
	mittelwert = (a + b) / 2;
}

public boolean ueberpruefe(String a, String b)
{
	if(a.length() == 1 && b.length() == 1){
		if(a.charAt (0)<'0') return true;
		if(b.charAt (0)<'0') return true; 
		strZahl1=a;	
		strZahl2=b;	
	return false;
}
	return true;
}
}
```
* :x  :x *


----------



## sliwalker (31. Jan 2006)

Hoi,

packages überprüfen 
Ich seh da jetzt gar nicht von packages, aber vllt liegts daran.

greetz
SLi


----------



## Beni (31. Jan 2006)

Mittelwertrechner hat nur einen Konstruktor, der erwartet zwei doubles. Darum gibts den ersten Fehler.

Die anderen 3 sehen ganz ähnlich aus: Argumente vergessen.


----------



## jeki (24. Feb 2006)

Danke für die Antworten aber ich stocher im Nebel
Ich muß die Werte aus den beiden Textfeldern (1 und 2) in die Klasse Mittelwertrechner bekommen und das Ergebnis von dort in das Textfeld (3) in der Klasse Mittelwert

Wie geht das? als String kann ich es nicht, da mault der Compiler immer wegen der double-Zahlen. Nur wie dann?

:roll: Konstruktor ist das 
	
	
	
	





```
Mittelwertrechner Mittelwertrechner;
```



			
				Beni hat gesagt.:
			
		

> Mittelwertrechner hat nur einen Konstruktor, der erwartet zwei doubles. Darum gibts den ersten Fehler.
> 
> Die anderen 3 sehen ganz ähnlich aus: Argumente vergessen.


----------



## The_S (24. Feb 2006)

jeki hat gesagt.:
			
		

> Compile K:\EinsendeaufgabenJAV04N\Java\Lernheft\Jav04N\Aufgabe1\Mittelwert.java....
> K:\EinsendeaufgabenJAV04N\Java\Lernheft\Jav04N\Aufgabe1\Mittelwert.java:27: cannot resolve symbol
> symbol  : constructor Mittelwertrechner  ()
> location: class Mittelwertrechner
> rechner = new Mittelwertrechner();



Hier erwartet die Klasse Mittelwertrechner 2 double Werte als Parameter. Siehe:



			
				jeki hat gesagt.:
			
		

> public Mittelwertrechner(double a, double b)





			
				jeki hat gesagt.:
			
		

> K:\EinsendeaufgabenJAV04N\Java\Lernheft\Jav04N\Aufgabe1\Mittelwert.java:67: ueberpruefe(java.lang.String,java.lang.String) in Mittelwertrechner cannot be applied to ()
> rechner.ueberpruefe();
> ^



Hier werden 2 Strings erwartet. Siehe:



			
				jeki hat gesagt.:
			
		

> public boolean ueberpruefe(String a, String b)





			
				jeki hat gesagt.:
			
		

> K:\EinsendeaufgabenJAV04N\Java\Lernheft\Jav04N\Aufgabe1\Mittelwert.java:106: cannot resolve symbol
> symbol  : method uebepruefe  (java.lang.String,java.lang.String)
> location: class Mittelwertrechner
> ok=rechner.uebepruefe(strZahl1, strZahl2);
> ^



Schreibfehler, es heißt ueberpruefe



			
				jeki hat gesagt.:
			
		

> K:\EinsendeaufgabenJAV04N\Java\Lernheft\Jav04N\Aufgabe1\Mittelwert.java:108: cannot resolve symbol
> symbol  : method Mittelwertrechner  ()
> location: class Mittelwertrechner
> mittelwert=rechner.Mittelwertrechner();
> ^



Mittelwertrechner ist der Konstruktor, keine Methode


----------



## jeki (24. Feb 2006)

Hä :bahnhof:


----------



## jeki (24. Feb 2006)

Wie kann ich denn nun erreichen, das die Strings ankommen, wo sie erwartet werden?

Wie schreibe ich den Konstruktor richtig in die Klasse Mittelwertrechnner?


Dieser Bereich (ohne boolean Überprüfung) ist der so schreibbar in der Klasse Mittelwert?


```
private void rechneClicked(){

   strZahl1=tfZahl1.getText();
   strZahl1=tfZahl2.getText();
   
   mittelwert=rechner.Mittelwertrechner();
   if(mittelwert > 0){
      String strErgebnis = String.valueOf(mittelwert);
      tfMittelwert.setText(strErgebnis);
    }
```

Und in der Klasse Mittelwertrechner kann ich das dann so schreiben?


```
public class Rechner extends Mittelwert
{
	double a;
	double b;
        double c;
        private String strZahl1="";
        private String strZahl2=""; 

public double Mittelwertrechner()
{   
        a = Double.parseDouble(tfZahl1.getText());
        b = Double.parseDouble(tfZahl2.getText());
        this.a = a;
	this.b = b;  
        return mittelwert = (a+b)/2;
}
}
```

Ich kann mit dieser Sprache nicht viel anfangen aber es gehört zum Fernstudium  :bloed:


----------



## The_S (24. Feb 2006)

Nur so ne Vermutung, du hast den Code nicht wirklich selber geschrieben!?


----------



## jeki (24. Feb 2006)

Hobbit_Im_Blutrausch hat gesagt.:
			
		

> Nur so ne Vermutung, du hast den Code nicht wirklich selber geschrieben!?



Teilweise ja teilweise nein, weil mit dem Lehrheft durchgearbeitet.


----------



## Killi138 (28. Feb 2006)

ok, ok, ok...du hast einiges durcheinander gebracht!



Das hier so ändern in der Klasse Mittelwertrechner :


```
public double Mittelwertrechner(double a, double b) 
{     
   mittelwert = (a + b) / 2; 

   return mittelwert;
}
```

dann bekommst von Mittelwertrechner auch was zurück!

bei rechneClicked in der Klasse Mittelwert folgendes:


```
private void rechneClicked(){ 

   double zahl1 = java.lang.Double.parseDouble(tfZahl1.getText()); 
   String zahl2 = java.lang.Double.parseDouble(tfZahl2.getText()); 

   double mittelwert=rechner.Mittelwertrechner(zahl1, zahl2); 

   if(mittelwert > 0){ 
      String strErgebnis = "" + mittelwert; 
      tfMittelwert.setText(strErgebnis); 
    }
```


----------



## jeki (1. Mrz 2006)

Killi138 hat gesagt.:
			
		

> ```
> private void rechneClicked(){
> 
> double zahl1 = java.lang.Double.parseDouble(tfZahl1.getText());
> ...



Wie ist es nur richtig?? 
vor 
	
	
	
	





```
zahl1...2...
```
 kommt ein 
	
	
	
	





```
double
```
 oder ein 
	
	
	
	





```
String
```
Ich denke ein 
	
	
	
	





```
double
```
 ist richtig.

Danke für die Hilfe.

Der Compiler hat bis auf diese Meldung, das die Klasse Mittelwert nicht abstract ist, fast keine Probleme mehr.


init:
deps-jar:
Compiling 2 source files to G:\Creator\Projects\Mittelwertrechner\build\classes
G:\Creator\Projects\Mittelwertrechner\src\Mittelwert.java:11: Mittelwert is not abstract and does not override abstract method windowDeiconified(java.awt.event.WindowEvent) in java.awt.event.WindowListener
public class Mittelwert extends Frame 
1 error
BUILD FAILED (total time: 0 seconds)

Nur wenn ich sie abstract setze, bemängelt der Compiler, das eben diese Klasse Mittelwert abstract ist. :bahnhof:

init:
deps-jar:
Compiling 2 source files to G:\Creator\Projects\Mittelwertrechner\build\classes
G:\Creator\Projects\Mittelwertrechner\src\Mittelwert.java:26: Mittelwert is abstract; cannot be instantiated
    Mittelwert mittelwert = new Mittelwert();
1 error
BUILD FAILED (total time: 0 seconds) 

... ist ja wie beim Hauptmann von Köpenick.


----------

