# Start:Applet nicht Initialisiert



## Dogge (5. Jun 2012)

Ich möchte auf meinem Applet ein Mosaik
erstellen mit einem 5x5 Raster.Dazu habe ich eine Hilfsklasse mit einer Konstruktormethode geschrieben "MosaikCanvas.class", eine Hauptklasse(Applet) "Mosaik.class" und eine html Datei "MosaikSpiel.html".

Alle Klassen lassen sich kompilieren.
Das Applet wird im Appletviewer gestartet, aber kein Raster. Es wird nur "Start:Applet nicht Initialisiert" angezeigt. 

```
//MosaikCanvas.java:
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.*;


public class MosaikCanvas extends Canvas {
	private Color farbe, farbeRueckseite, farbeVorderseite;
	public Color getFarbe() {
		return farbe;
	}
	public void setFarbe(Color inValue) {
		farbe=inValue;
	}
	private boolean vorderseite = false;
	public boolean isVorderseite() {
		return vorderseite;
	}
	private int zeile, spalte;
	public int getZeile() {
		return zeile;
	}
	public int getSpalte() {
		return spalte;
	}
	public MosaikCanvas(int zeile,int spalte, Color farbeRueckseite, Color farbeVorderseite) {
		this.zeile=zeile;
		this.spalte=spalte;
		this.farbeRueckseite=farbeRueckseite;
		this.farbeVorderseite=farbeVorderseite;
		this.setFarbe(farbeRueckseite);
		
	}
	public void switchSeite() {
		vorderseite=!vorderseite;
		farbe=(farbe==farbeRueckseite)? farbeVorderseite : farbeRueckseite;
		repaint();
	}
	
	public void paint(Graphics g) {
		g.setColor(getFarbe());
		g.fillRect(0, 0, this.getSize().width -1,this.getSize().height -1);
	}
	[/Java]

Mosaik.java
[Java]

import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

	public class Mosaik extends java.applet. Applet implements MouseListener {
		int raster;
		public void init() {
			String temp=getParameter("raster");
			raster=Integer.parseInt(temp);
			setLayout(new GridLayout(raster,raster));
			for(int i=0;i < raster; i++) {
				for(int j=0;j<raster;j++) {
					MosaikCanvas mc=new MosaikCanvas(i,j,new Color(255,0,0),new Color(0,255,0));
					mc.addMouseListener(this);
					add(mc);
				}
			}
		}
		//Die fünf MouseListener Methoden
		public void mouseClicked(MouseEvent me) {}
		public void mouseEntered(MouseEvent me) {}
		public void mouseExited(MouseEvent me) {}
		public void mousePressed(MouseEvent me) {}
		public void mouseRealeased(MouseEvent me) {}
		public void mouseReleased(MouseEvent me) {
			 ((MosaikCanvas) me.getSource()).switchSeite();// TODO Auto-generated method stub
			
		}
		
		
	}
```

Und noch die html Datei MosaikSpiel.html

```
<html><head></head>
<body>
<applet code="Mosaik.class" codebase="file:///C|/eclipse_workbench/MosaikSpiel/"  width="300" height="300">
<param name="raster" value="Keine Ahnung" >
</applet>
</body>
</html>
```

Was sollte ich beim value angeben?
5? Aber ich brauche einen String.


----------



## Nardian (5. Jun 2012)

Mit Applets kenne ich mich leider nur wenig aus, aber der Pfad "file:///C|/eclipse_workbench/MosaikSpiel/" sieht für mich merkwürdig aus. Zumindest das "...C|/..." - sollte das nicht C:/... heißen?

Lg


----------



## Dogge (5. Jun 2012)

Tag Nardian. Dein Vorschlag bringt leider keine Besserung.

In MosaikCanvas.java(der erste Java-Code am Anfang ) z.36 steht vorderseite=!vorderseite. Kann man das so schreiben?(Der Compiler hat kein Problem damit)

Ich nutze Eclipse, falls das weiterhilft.

Ich habe das Gefühl, dass es sich hier um ein Eclipse-Prolem handelt.
Jap, das funktioniert, wenn ich in den Ordner gehe, wo meine html Datei ist.Nur noch draufklicken und fertig.
Warum lässt sich der Appletviewer nicht über Eclipse nutzen???


----------



## L-ectron-X (5. Jun 2012)

Dogge hat gesagt.:


> Was sollte ich beim value angeben?
> 5? Aber ich brauche einen String.


Ja, warum nicht. Applet-Parameter gelangen immer als Zeichenkette ins Applet.
Deshalb musst du eine 5 zu einem int parsen, wenn du intern mit einer Zahl arbeiten möchtest.



Dogge hat gesagt.:


> In MosaikCanvas.java(der erste Java-Code am Anfang ) z.36 steht vorderseite=!vorderseite. Kann man das so schreiben?(Der Compiler hat kein Problem damit)


Kann man. Das wäre eine einfache Negation. Bei jedem Aufruf wird der Wert negiert.

Lösche mal das codebase-Attribut aus deinem applet-Tag. HTML-Datei und class-Dateien sollten im gleichen Verzeichnis liegen, dann sollte dein Applet funktionieren.
Dort, wo dein Applet schließlich zum Einsatz kommt, gibt es garantiert nicht die Umgebung, die du jetzt in codebase spezifizierst.
Außerdem kommt es so garantiert zu einem Rechteproblem.


----------



## Dogge (5. Jun 2012)

L-ectron-X hat gesagt.:


> Lösche mal das codebase-Attribut aus deinem applet-Tag. HTML-Datei und class-Dateien sollten im gleichen Verzeichnis liegen, dann sollte dein Applet funktionieren.
> Dort, wo dein Applet schließlich zum Einsatz kommt, gibt es garantiert nicht die Umgebung, die du jetzt in codebase spezifizierst.
> Außerdem kommt es so garantiert zu einem Rechteproblem.



Ich habe codebase gelöscht und es funktioniert.
Warum kann ich aber aus Eclipse heraus kein Applet betrachten bzw. was müsste ich verändern?


----------



## RiekeRieke (5. Jun 2012)

Hallo,
dir fehlt ein Import.

Entweder ist es import 
	
	
	
	





```
import java.applet.*;  oder  import java.applet.Applet;
```
 . Vielleicht ist deine konfigurierte JDK auch nicht die Aktuellste ( also geeignet für Applet). Du solltest mindestens java version 1.6. konfiguriert haben.

Hoffe ich konnte dir helfen. 

Viele Grüße,
RiekeRieke


----------



## rahmstein (5. Jun 2012)

Hallo,

in derKlasse Mosaik sollte in Zeile 7 zwischen applet.Applet kein Leerzeichen sein.
Wenn du anstelle von Eclipse den JavaEditor ( freeware ) nimmst sollte es ohne Probleme gehen.
Viel spass noch beim lernen mit der SGD.

schöne Grüße 
      Rahmstein


----------



## Dogge (5. Jun 2012)

RiekeRieke hat gesagt.:


> Hallo,
> dir fehlt ein Import.
> 
> Entweder ist es import
> ...



extends java.applet.Applet steht bei mir schon. Importieren muss ich das nicht, da ich es in Form eines Objektes dort nirgends verwende.
Dass es nicht angezeigt wird, ist ein Eclipseproblem.

Das aktuelle JRE ist aufgespielt.



rahmstein hat gesagt.:


> Hallo,
> 
> in derKlasse Mosaik sollte in Zeile 7 zwischen applet.Applet kein Leerzeichen sein.
> Wenn du anstelle von Eclipse den JavaEditor ( freeware ) nimmst sollte es ohne Probleme gehen.
> ...



Ich möchte Eclipse verwenden. Nur ist es blöd, dass Eclipse am Anfang so nervt. Langfristig ist Eclipse eine vernünftige Sache.(Plug-in für c++, UML)
Dein Tipp bzgl.des Leerzeichens  hat leider nicht geholfen. Es liegt an Eclipse. Startet der Java-Editor von allein den Appletviewer?


----------



## jgh (5. Jun 2012)

also so funzt dein prog auch im applet-viewer von ecipse...:


```
import java.awt.Color;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.JPanel;

public class Mosaik extends java.applet.Applet implements MouseListener {
	int raster = 5;

	public void init() {
		// String temp = getParameter("raster");
		// raster = Integer.parseInt(temp);
		setLayout(new GridLayout(5, 5));
		for (int i = 0; i < raster; i++) {
			for (int j = 0; j < raster; j++) {
				MosaikCanvas mc = new MosaikCanvas(i, j, new Color(255, 0, 0),
						new Color(0, 255, 0));
				mc.addMouseListener(this);
				add(mc);
			}
		}
	}

	// Die fünf MouseListener Methoden
	public void mouseClicked(MouseEvent me) {
	}

	public void mouseEntered(MouseEvent me) {
	}

	public void mouseExited(MouseEvent me) {
	}

	public void mousePressed(MouseEvent me) {
	}

	public void mouseRealeased(MouseEvent me) {
	}

	public void mouseReleased(MouseEvent me) {
		((MosaikCanvas) me.getSource()).switchSeite();// TODO Auto-generated
														// method stub

	}

	class MosaikCanvas extends JPanel {
		private Color farbe, farbeRueckseite, farbeVorderseite;

		public Color getFarbe() {
			return farbe;
		}

		public void setFarbe(Color inValue) {
			farbe = inValue;
		}

		private boolean vorderseite = false;

		public boolean isVorderseite() {
			return vorderseite;
		}

		private int zeile, spalte;

		public int getZeile() {
			return zeile;
		}

		public int getSpalte() {
			return spalte;
		}

		public MosaikCanvas(int zeile, int spalte, Color farbeRueckseite,
				Color farbeVorderseite) {
			this.zeile = zeile;
			this.spalte = spalte;
			this.farbeRueckseite = farbeRueckseite;
			this.farbeVorderseite = farbeVorderseite;
			this.setFarbe(farbeRueckseite);

		}

		public void switchSeite() {
			vorderseite = !vorderseite;
			farbe = (farbe == farbeRueckseite) ? farbeVorderseite
					: farbeRueckseite;
			repaint();
		}

		@Override
		public void paintComponent(Graphics g) {
			super.paintComponent(g);
			g.setColor(getFarbe());
			g.fillRect(0, 0, this.getSize().width - 1,
					this.getSize().height - 1);
		}
	}
}
```


----------



## rahmstein (6. Jun 2012)

Hallo jgh,

deine Lösung geht leider an der Aufgabenstellung vorbei 

Hallo Dogge jacko hatte fast dasselbe problem hier beschrieben und bei ihm 
war die Benutzung des JavaEditors der erfolgreich.


----------



## Dogge (7. Jun 2012)

rahmstein hat gesagt.:


> ... und bei ihm
> war die Benutzung des JavaEditors der erfolgreich.



Ja ok. Bei Eclipse hängt das mit dem Verzeichnis zusammen, wo die benötigte html-Datei abgespeichert wird. Man darf anscheinend nicht mit default Package arbeiten, sondern muss ein eigenes Package abspeichern. Dann sollte es laufen.
Re: Applet funktioniert in Eclipse Applet-Viewer, aber nicht im Browser


----------



## Dogge (7. Jun 2012)

Misst es läuft trotzdem nicht.Noch nicht mal in einem externen Browser. Mein Applet will überhaupt nicht mehr.:lol::autsch:


----------

