# Keine Berechnung im Applet



## Guest (28. Jan 2008)

Hi
mal ne kurze Frage. Das Programm soll einfache Berechnungen am Rechteck durchführen. In Eclipse klappt alles wunderbar aber im Browser als Applet zeigt er mir nach Eingabe der Werte kein Ergebnis an. Woran könnte das liegen?


```
package rechteck_Ografisch_Applet;

import java.applet.Applet;

public class Rahmen extends Applet{
	
	public void init(){
		
		Oberflaeche of= new Oberflaeche(this);
		of.setVisible(true);
	}
	
}
```


----------



## Leroy42 (28. Jan 2008)

und was macht/ist die Klasse Oberflaeche?


----------



## Guest (28. Jan 2008)

sorry...

hier Oberflaeche:

```
package rechteck_Ografisch_Applet;

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.io.BufferedReader;
import java.text.*;
import java.util.*;


public class Oberflaeche extends Frame {

	Button button_berechne = new Button("Berechne");
	Button button_neueberechnung = new Button("Neue Berechnung");
	Button button_ende = new Button("Ende");
	
	TextField textfeld_seite_a = new TextField();
	TextField textfeld_seite_b = new TextField();
	TextField textfeld_flaeche = new TextField();
	TextField textfeld_umfang = new TextField();
	
	Label label_eingabe_seite_a = new Label("Gib Seite a in m ein");
	Label label_eingabe_seite_b = new Label("Gib Seite b in m ein");
	Label label_flaecheneinheit = new Label("m²");
	Label label_umfangeinheit = new Label("m");
	Label label_flaeche = new Label("Fläche:");
	Label label_umfang = new Label("Umfang:");
	
	double a;
	double b;
	double flaecheninhalt;
	double umfang;
	double of;
	Rechteck r;
	Applet app;
	
	Image img;
	
	public Oberflaeche(Applet app){
		
		this.app=app;
		this.setSize (new Dimension(800,650));
	Dimension Bildschirmgroesse = Toolkit.getDefaultToolkit().getScreenSize();
	setLocation ((Bildschirmgroesse.width-800)/2,(Bildschirmgroesse.height-650)/2);
	
		this.setTitle("Berechnung am Rechteck");
		this.setBackground(new Color(190,98,0));
		
		setLayout(null);
		button_berechne.setBounds(200,400,120,20);
		button_neueberechnung.setBounds(200,425,120,20);
		button_ende.setBounds(200,450,120,20);
		textfeld_seite_a.setBounds(100,275,120,20);
		textfeld_seite_b.setBounds(250,275,120,20);
		textfeld_flaeche.setBounds(200,325,120,20);
		textfeld_flaeche.setEditable(false);
		textfeld_umfang.setBounds(500,325,120,20);
		textfeld_umfang.setEditable(false);
		label_eingabe_seite_a.setBounds(100,305,120,20);
		label_eingabe_seite_b.setBounds(250,305,120,20);
		label_flaecheneinheit.setBounds(320,325,20,20);
		label_umfangeinheit.setBounds(620,325,20,20);
		label_flaeche.setBounds(150,325,100,20);
		label_umfang.setBounds(450,325,100,20);
		
		this.add(textfeld_seite_a);
		this.add(textfeld_seite_b);
		this.add(button_berechne);
		this.add(button_neueberechnung);
		this.add(button_ende);
		this.add(textfeld_flaeche);
		this.add(textfeld_umfang);
		this.add(label_umfangeinheit);
		this.add(label_flaecheneinheit);
		this.add(label_eingabe_seite_a);
		this.add(label_eingabe_seite_b);
		this.add(label_flaeche);
		this.add(label_umfang);
		
		
		
		
	button_berechne.addActionListener (new java.awt.event.ActionListener() {
		public void actionPerformed (ActionEvent e) {
			a = Double.parseDouble(textfeld_seite_a.getText());
			b = Double.parseDouble(textfeld_seite_b.getText());
			r = new Rechteck(a,b);
			flaecheninhalt = r.berechneFlaeche();
			umfang = r.berechneUmfang();
			
			Locale.setDefault(Locale.ENGLISH);
			DecimalFormat df = new DecimalFormat("#0.0000");
			textfeld_flaeche.setText (df.format(flaecheninhalt));
			textfeld_umfang.setText (df.format(umfang));
			
		}
	});
		
		
	button_neueberechnung.addActionListener(new java.awt.event.ActionListener(){
		public void actionPerformed (ActionEvent e) {
			textfeld_seite_a.setText("");
			textfeld_seite_b.setText("");
			textfeld_flaeche.setText("");
			textfeld_umfang.setText("");
		}
	});
	
	button_ende.addActionListener (new java.awt.event.ActionListener() {
		public void actionPerformed (ActionEvent e){
			setVisible(false);
			dispose();
			System.exit(0);
		}
	});
	

}
	public void paint(Graphics g){
		
		g.setColor(new Color (0,0,0));
		g.drawRect(10,30, 780, 610);
		
		MediaTracker mt = new MediaTracker (this);
		Image img=app.getImage(app.getDocumentBase(),"rechteck_Ografisch_Applet/IMG_3663.jpg");
		mt.addImage (img,0);
		
		try {
			mt.waitForAll();
		}
		
		catch (InterruptedException e){
			System.out.println("Bildladefehler "+e);
		}
		
		g.drawImage(img,20,40,this);
		
		//schrift ändern
		
		g.setColor (new Color (100,10,30));
		Font schriftart = new Font ("Serif", Font.PLAIN,30);
		g.setFont(schriftart);
		g.drawString("RECHTECK - einfache Berechnungen", 200, 100);
		
		//Textdatei einlesen
		FileReader fr = null;
		String zeile="";
		int i =0;
		String textdatei = app.getCodeBase().getPath()+"/rechteck_Ografisch_Applet/text.txt";
		
		try {
			fr = new FileReader(textdatei);
			
		}
		
		catch (FileNotFoundException fnfex){
			System.out.println("Datei"+textdatei+" nicht gefunden");
		}
		
		BufferedReader br = new BufferedReader (fr);
		try {
			while (zeile !=null){
				zeile = br.readLine ();
				if (zeile!=null){
					
					g.drawString(zeile,150,550+i*20);
					i=i+1;
				}
			}
			fr.close();
		}
		
		
		catch (IOException iex){
			System.out.println("Datei kann nicht gelesen werden"+textdatei);
		}
		
	}
	
}
```

und hier der HTML-Code

```
<html>
	<head><title>Applet-Rechteck</title></head>
<body>
	<applet code ="rechteck_Ografisch_Applet/Rahmen.class" width="10" height="10"></applet>
</body>
</html>
```


----------



## Booyeoo (4. Feb 2008)

ich glaube wir haben das gleiche Problem:

Applet (Class-Datei(en)) in Html-Seite einbinden - Clipboard


----------



## L-ectron-X (4. Feb 2008)

Booyeoo hat gesagt.:
			
		

> ich glaube wir haben das gleiche Problem:
> 
> Applet (Class-Datei(en)) in Html-Seite einbinden - Clipboard


Nein, das glaube ich noch nicht. Ich denke, es handelt sich hier hauptsächlich um ein falsch in die HTML-Datei eingebettetes Applet.
Zeig mal die Ausgabe der Java-Console.

Obwohl auch noch Sachen drin sind, die eine Signierung erfordern.

Ein Applet kann die JVM nicht beenden, das kann nur der Browser. Daher ist der Code
_System.exit(0);_
in einem Applet nicht ausführbar.


----------



## Booyeoo (4. Feb 2008)

Oh, ok sorry L-ectron-X, da hast Du wohl recht. Ich dachte nur, wenn man sein Problem löst, gehts meins auch weg. 
Ich bin nun ein wenig weiter gekommen. Immerhin läuft mein Applet, wenn ich kein Clipboard verwende. Da ich es jedoch als sehr komfortable ansehe, dass er die gewünschten Dateien direkt dort reinpackt, würde ich es gerne weiter behalten.
Da ich das würde aus dem letzten Satz streichen will, habe ich Dein cooles SignTool verwendet, aber ich weiß nun nicht mehr was ich mit der Jar machen soll.. Wohin damit? Naja mehr dazu in meinem Thread.


----------

