Problem mit Applet (online / offline)

Heimann

Mitglied
Hallo,

ich bin neu hier und habe sofort eine Frage, nach deren Lösung ich schon Tage suche. :lol:

Bis vor einigen Wochen hatte ich kein Problem mit dem Java-Applet, welches schon einige Jahre auf meiner HP läuft.
(Ich habe bei mir nichts geändert, sondern nur Java upgedatet und Avira-Internet-Security installiert) ;(

So, nun zu meinem Problem :

Wenn ich alle Dateien per FTP auf die HP hochlade, wird mir das Feld für das Java Applet nur ein weißer Kasten angezeigt. :bahnhof:

Starte ich die die HP offline auf meinem Rechner, Alle Dateien auf meinem Rechner, wird alles perfekt angezeigt. :applaus:

Hier mal die ersten Zeiles des Applets :

Java:
<APPLET CODEBASE="." CODE="XeoMenu.class" WIDTH="148" HEIGHT="316">
<PARAM NAME=copyright VALUE="(c) 1997 Sun Microsystems Inc.  All Rights Reserved.">
<PARAM NAME=author value="Patrick Chan.  www.xeo.com">

Im 'head' steht nix besonderes drin. (Nix für Java von Bedeutung)

Ich hoffe Ihr könnt mir helfen. 🙁

Bin total am ende. 😱

DANKE.
 
Liegt dein Applet in einem Jar-Archiv? Hast du dein Applet in einem Package definiert? Liegt dein Applet in einem anderen Verzeichnis als deine HTML-Datei?
Wenn du bei allen Fragen mit "nein" antworten kannst, ist dein Applet-Tag soweit in Ordnung.
 
Hallo und danke für deine Antwort.

Leider kann ich nur auf die letzte Frage ganz bestimmt mit "Nein" antworten.
Zu der ersten Frage : Ich weiß leider nicht, was, oder wo ein Jar-Archiv ist,
und zur zweiten Frage : Ich dachte, das mit "Code" das Package definiert wird.

Hättest du freundlicherweise je ein Beispiel für Frage 1 und 2 ?

Sorry, wenn ich das so frage, aber warum hat das erst funktioniert und jetzt nicht mehr ???
 
Ich weiß leider nicht, was, oder wo ein Jar-Archiv ist,
Ein Jar-Archiv ist quasi eine modifizierte Zip-Datei, welche ein ganzes Projekt oder Teile davon zusammenfasst. Jar-Archive dienen also der Kompression und Zusammenfassung von Java-Programmen zu Bibliotheken bzw. zu direkt per Mausklick ausführbaren Programmen (ähnlich einer exe-Datei unter Windows).

und zur zweiten Frage : Ich dachte, das mit "Code" das Package definiert wird.
Nein, das code-Attribut des Applet-Tags gibt an, welche Java-Klasse (.class-Datei) vom Browser geladen werden soll. Also das eigentliche Applet - die Klasse, die von Applet erbt.
Die Angabe des Packages gehört aber mit in dieses Attribut, so fern ein Package in der Klasse definiert wurde.

Hättest du freundlicherweise je ein Beispiel für Frage 1 und 2 ?
Ja, in der FAQ findest du Applet- und Object-Tags zum Einbinden für alle möglichen Situationen: http://www.java-forum.org/applets/114668-java-applet-webseite-einbinden.html

Sorry, wenn ich das so frage, aber warum hat das erst funktioniert und jetzt nicht mehr ???
Um das zu klären, solltest du mal einen Blick in die Java-Console des gestarteten Applets werfen.
Da solltest du Fehlermeldungen finden, die Aufschluss über das Problem geben können.
 
Danke noch mal.

Habe nun auch das Package definiert. 😀
(Und auch als Object definiert, anstelle Applet)

Da mein Applet nicht in einem Archiv liegt, kann und brauche ich doch auch keine Datei mit der Endung .jar angeben. (Die habe ich nämlich nicht.)

Kann ich Dir mal den Auszug aus der Console mal zumailen, oder als PN schicken? ???:L

Es fängt mit dem hier an :

Exception in thread "AWT-EventQueue-2" java.lang.NullPointerException

Danke schon mal im Voraus.
 
Das bedeutet, das etwas nicht initialisiert wurde oder geladen werden konnte.

Wenn es so ein Geheimnis ist, kannst du die Fehlermeldung per PN loswerden.
Ansonsten natürlich hier in diesem Thread.
 
OK,
das hört sich leider nicht so gut an. ;(
So geheim ist es nun auch nicht. :rtfm:

Hier ist der Auszug der Konsole :

Code:
Exception in thread "AWT-EventQueue-2" java.lang.NullPointerException
	at XeoMenu.update(XeoMenu.java:208)
	at sun.awt.RepaintArea.updateComponent(Unknown Source)
	at sun.awt.RepaintArea.paint(Unknown Source)
	at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$200(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

Da ist mir leider zu viel (Unknown Source) drin.

In der html-Datei, die das aufruft sieht es jetzt so aus :
Java:
<OBJECT codetype="application/java-archive" classid="java:XeoMenu.class" width="148" height="316">
<PARAM NAME=copyright VALUE="(c) 1997 Sun Microsystems Inc.  All Rights Reserved.">
<PARAM NAME=author value="Patrick Chan.  www.xeo.com">

Das ist doch jetzt richtig so, oder ???? ???:L

Ich hoffe, das ich nicht zu lästig bin. 😳
 
In XeoMenu.java Zeile 208 ist eine Referenz null, auf der du versuchst eine Methode aufzurufen.
Was steht in der entsprechenden Zeile und den relevanten Zeilen davor?
 
Danke.

Hier der Auszug aus der XeoMenu.java Datei. (Ich habe nur die .class und .java Dateien)

Wenn noch mehr benötigt wird, bitte bescheid geben. :toll:

[JAVA=195]
bbufG.setColor(bgColor);
bbufG.fillRect(0, 0, size().width, size().height);
bbufG.drawImage(image, 0, 0, this);

if (curMenu >= 0) {
g2 = bbuf.getGraphics();
// Paint the overlay image
g2.clipRect(dstPt[curMenu].x, dstPt[curMenu].y,
srcRect[curMenu].width, srcRect[curMenu].height);
g2.drawImage(image, dstPt[curMenu].x-srcRect[curMenu].x,
dstPt[curMenu].y-srcRect[curMenu].y, this);
g2.dispose();

g2 = bbuf.getGraphics();
for (int i=0; i<menuItemRect.length; i++) {
drawMenuItem(g2, i);
}
g2.dispose();
}
g.drawImage(bbuf, 0, 0, this);
}

[/code]

Ich hoffe das es der einzige Fehler ist. 😱

Danke schon mal.
 
Zuletzt bearbeitet von einem Moderator:

Zurück
Oben