Start:Applet nicht Initialisiert

Dogge

Aktives Mitglied
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.
Java:
//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:
<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.
 
Zuletzt bearbeitet von einem Moderator:
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
 
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???
 
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.

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.
 
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?
 
Hallo,
dir fehlt ein Import.

Entweder ist es import
Java:
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
 
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
 
Hallo,
dir fehlt ein Import.

Entweder ist es import
Java:
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.

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.

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

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?
 
also so funzt dein prog auch im applet-viewer von ecipse...:

Java:
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);
		}
	}
}
 
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.
 
Misst es läuft trotzdem nicht.Noch nicht mal in einem externen Browser. Mein Applet will überhaupt nicht mehr.:lol::autsch:
 

Zurück
Oben