# Aus dem Applet eine andere Klasse instanzieren



## Haase (24. Mrz 2007)

Hi Allerseits!!

Ich habe ein Problem bei einem Applet. Würde mich freuen wenn ihr mir helfen könntet.

Ich habe ein Applet, was die Oberfläche eines Taschenrechners darstellt. Diese Datei habe ich in eine HTML-Datei eingebunden und soweit funktioniert alles.

Was nicht funktioniert ist, das wenn ich auf den "Berechnen Button" drücke wird die eingegebene Gleichung an eine andere Klasse mitgegeben:
Calculation c = new Calculation(jTextField,jTextField1); // Hier entsteht das Problem

Diese Klasse analysiert die Gleichung und gibt das Ergebnis aus. In Eclipse funktioniert das Applet, aber im Browser leider nicht, wenn ich javac applet.java mache kommt diese Fehlermeldung:
applet.java:68: cannot find symbol    // Zeile 68 ist Calculation c = .....
symbol: class Calculation
Calculation c = new Calculation(jTextField,jTextfield1,3);
           ^
...

Gruß Haase

P.S.: Darf man überhaupt eine andere Klasse instanzieren?


----------



## Wildcard (24. Mrz 2007)

Die Fehlermeldung kommt weil es entweder keine Klasse Calculation gibt, oder (falls sie in einem anderen Package liegt) du deren Package nicht importierst.
In Eclipse geht das aber unter gleichen Umständen auch nicht.


----------



## Tobias (24. Mrz 2007)

JAR nicht im Classpath?


----------



## Haase (25. Mrz 2007)

Ich habe jetzt die beiden Klassen aus dem Packet rausgenommen und die zweite Klasse Calculation so vereinfacht(heißt jetzt hallo.java), das er einfach nur Hallo in ein Textfeld von applet.java  hineinschreiben soll, jetzt sehe ich die grafische Oberfläche im Firefox-Browser. Wenn ich aber auf den "Berechnen Button" klicke dann schreibt er nicht hallo in das Textfeld. In der Windows-Eingabeaufforderung sehe ich beim kompilieren mit javac den Fehler:
applet.java:68: cannot find symbol // Zeile 68 ist new Calcul .....
symbol: class Calculation
new Calculation(jTextField1,"Hallo");
^ 


```
//applet.java(auzug):
public class applet extends JApplet {
	private JPanel jContentPane = null;
	private JButton jButton = null;
	private JTextField jTextField = null;
	private JTextField jTextField1 = null;
	public applet() {
		super();
	}
	public void init() {
		this.setSize(500, 400);
		this.setContentPane(getJContentPane());
	}
...
private JButton getJButton() {
		if (jButton == null) {
			jButton = new JButton();
			jButton.setBounds(new Rectangle(24, 33, 97, 43));
			jButton.setText("send");
			jButton.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					/* Eingabefeld darf nicht leer sein */
					if(jTextField.getText().equals("")){ 
						jTextField1.setText("Bitte geben Sie eine Berechnung ein!");
					}
					else{
						//new Calculation(jTextField,jTextField1);
						new hallo(jTextField1,"hallo");
					}
...

hallo.java(komplett):
import javax.swing.JTextField;
public class hallo {
	public hallo(JTextField textfield1,String t){
		textfield1.setText(t);
	}}
```


----------



## Wildcard (25. Mrz 2007)

Wenn du die Datei nicht kompilieren kannst, dann hast du auch keine class Datei die du auf den Server legen kannst.



> Ich habe jetzt die beiden Klassen aus dem Packet rausgenommen und die zweite Klasse Calculation so vereinfacht(heißt jetzt hallo.java)


Warum steht in deinem Source dann noch Calculation?


----------



## Haase (26. Mrz 2007)

Ich kann die Klassen in Eclipse kompilieren und erfolgreich in Eclipse als Applet ausführen nur leider funktioniert es nicht im Browser.

Die Klasse Calculation ist in de Source auskommentiert.


----------

