Java java.awt.* - Frage

Riker

Lieutenant
Registriert
Jan. 2005
Beiträge
862
Hallo!

Ich bin gerade dabei meine ersten Schritte im AWT Umfeld zu machen.
Dahingehend wollte ich zuerst ein einfaches Applet kopieren und mir das ansehen.
Dafür habe ich das Bsp. von folgender Seite genommen:

http://www.torsten-horn.de/techdocs/java-img.htm#ProgrammierbeispielAppletAWT

Auf dieser Seite direkt das erste Bsp.

Wenn ich das Applet nun im Browser starten möchte, bekomme ich allerdings immer folgenden Fehler:

Java Plug-in 1.6.0_22
Verwendung der JRE-Version 1.6.0_22-b04 Java HotSpot(TM) Client VM
Home-Verzeichnis des Benutzers = C:\...\...
----------------------------------------------------
c: Konsole löschen
f: Objekte in Finalisierungswarteschlange finalisieren
g: Speicherbereinigung
h: Diese Hilfemeldung anzeigen
l: ClassLoader-Liste ausgeben
m: Speicherbelegung anzeigen
o: Protokollierung auslösen
q: Konsole ausblenden
r: Richtlinien-Konfiguration neu laden
s: System- und Bereitstellungseigenschaften ausgeben
t: Threadliste ausgeben
v: Thread-Stack ausgeben
x: ClassLoader-Cache löschen
0-5: Trace-Stufe auf <n> setzen
----------------------------------------------------
java.lang.NoClassDefFoundError: Swingtest (wrong name: swingtest/Swingtest)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Ausnahme: java.lang.NoClassDefFoundError: Swingtest (wrong name: swingtest/Swingtest)


Wie man sieht, habe ich meine Klasse allerdings ander genannt (Swingtest). Dahingehend auch den HTML-Code und den Java Code angepasst. Aber es funzt einfach nicht :(

Kann mir jmd. sagen warum?

Danke!
 
Sieht für mich aus als ob du keine Java-Plugin für dein Browser hast!
 
Wenn du dich schon an java wagst dann installier auch bitte das Plug-in im Browser
 
Deine Class-Datei in der Ordner kopiert wo auch das Html ist ?
Poste mal die "public class MyAwtApplet extends Applet" Zeile wie sie jetzt bei Dir aussieht,
und das Html.

Und als kleiner Tipp: Beispiele besser erst mal überhaupt ans laufen kriegen bevor man mit Änderungen beginnt. :evillol:
 
Wenn du die Klasse umbenannt hast, hast du dann auch den Dateinamen angepasst? Bei Java muss Klassenname + Dateiname gleich sein.
 
oiram45534 schrieb:
Wenn du dich schon an java wagst dann installier auch bitte das Plug-in im Browser

Danke für Deinen unglaublich freundlichen Umgangston!
Aber rate mal woher ich den Stacktrace bekomme? Selbst ausgedacht habe ich mir diesen sicher nicht - den liefert mit das Java Plug-in vom Firefox! Oo

Es ist ja nicht das erste Mal, dass ich etwas in Java programmiere - ich entwickel schon länger in Java. Es ist nur mein erstes Mal, dass ich mich an das awt Framework wage. Einfach aus Interesse ;)

Klassenname == Dateiname...
Daran kann es also nicht liegen.
Das HTML File liegt im gleichen Ordner wie das class-File.
Hier der Inhalt:

Code:
package swingtest;

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

public class Swingtest extends Applet {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public void paint(Graphics g) {
		int iWidth = getSize().width;
		int iHeight = getSize().height;
		g.setColor(Color.blue);
		g.drawRoundRect(0, 0, iWidth - 1, iHeight - 1, 16, 16);
		g.setColor(Color.black);
		FontMetrics fm = g.getFontMetrics(g.getFont());
		String s = "" + iWidth + " x " + iHeight + " Pixel";
		g.drawString(s, (iWidth - fm.stringWidth(s)) / 2,
				(iHeight - fm.getHeight()) / 2 + fm.getAscent());
	}
}

Code:
<html><body>
<h3>Ausgabe eines Java-Applets:</h3>
<applet code="Swingtest.class" width=250 height=80>
<br>Bitte Java-Support einschalten !<br>
</applet>
</body></html>
 
Aha, sowas hatte ich schon geahnt .. :freaky: package swingtest

<applet code="swingtest.Swingtest.class" width=250 height=80>
Sollte klappen.

Und P.S: Don't feed the trolls. :evillol:
 
Hab das html-File nun so angepasst.
Leider wird das class-File nun wohlan gar nicht mehr gefunden... :/
Hier der Stacktrace:

Code:
Java Plug-in 1.6.0_23
Verwendung der JRE-Version 1.6.0_23-b05 Java HotSpot(TM) Client VM
Home-Verzeichnis des Benutzers = C:\...\...
----------------------------------------------------
c:   Konsole löschen
f:   Objekte in Finalisierungswarteschlange finalisieren
g:   Speicherbereinigung
h:   Diese Hilfemeldung anzeigen
l:   ClassLoader-Liste ausgeben
m:   Speicherbelegung anzeigen
o:   Protokollierung auslösen
q:   Konsole ausblenden
r:   Richtlinien-Konfiguration neu laden
s:   System- und Bereitstellungseigenschaften ausgeben
t:   Threadliste ausgeben
v:   Thread-Stack ausgeben
x:   ClassLoader-Cache löschen
0-5: Trace-Stufe auf <n> setzen
----------------------------------------------------


Laden: Klasse swingtest.Swingtest.class nicht gefunden
java.lang.ClassNotFoundException: swingtest.Swingtest.class
	at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
	at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
	at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
	at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
	at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
	at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.io.FileNotFoundException: C:\workspace\private\gwt\Swingtest\bin\swingtest\swingtest\Swingtest\class.class (Das System kann den angegebenen Pfad nicht finden)
	at java.io.FileInputStream.open(Native Method)
	at java.io.FileInputStream.<init>(Unknown Source)
	at java.io.FileInputStream.<init>(Unknown Source)
	at sun.net.www.protocol.file.FileURLConnection.connect(Unknown Source)
	at sun.net.www.protocol.file.FileURLConnection.getInputStream(Unknown Source)
	at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source)
	at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source)
	at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	... 9 more
Ausnahme: java.lang.ClassNotFoundException: swingtest.Swingtest.class


Man beachte auch die unglaublich unsinnige Pfadangabe :)

Code:
Caused by: java.io.FileNotFoundException: C:\workspace\private\gwt\Swingtest\bin\swingtest\swingtest\Swingtest\class.class (Das System kann den angegebenen Pfad nicht finden)


EDIT:

Gelöst!
Du hattest Recht mit Deiner Vermutung, lynxx.
Allerdings muss man dabei auch die richtige Ordnerstrutkur beachten - da hab ich mir gerade auch an den Kopf gepackt :)
Ich habe das html-File mit in den package Ordner gepackt - so soll das natürlich nicht aussehen :)
Das html-File einmal in den übergeordneten Ordner rein und dann klappt das ganze auch ;)

Danke und beste Grüße!
 
Zuletzt bearbeitet: (Google hat bei der Suche nach meinem eigenen Namen gezeigt, dass ich in der Pfadangabe meinen vollen Namen reingeschr. hatte)
Zurück
Oben