JApplet über Webbrowser ausführen?

bruce85

Bekanntes Mitglied
Hallo,
ich habe ein kleines problem und zwar, wenn ich mein Programm über Internet Explorer ausführe, dann sind keine Bilder geladen, in NetBeans werden sie aber geladen.
Im Archiv .jar sind die Bilder vorhanden "img/bild.png" u.s.w.

So lade ich die Bilder:
Java:
        bild1 = Toolkit.getDefaultToolkit().createImage("img/bild1.PNG");
        bild2 = Toolkit.getDefaultToolkit().createImage("img/bild2.PNG");
        bild3 = Toolkit.getDefaultToolkit().createImage("img/bild3.PNG");

        MediaTracker mt = new MediaTracker(this);
        mt.addImage(bild1, 0);
        mt.addImage(bild2, 1);
        mt.addImage(bild3, 2);
        try {
            mt.waitForAll();
        } catch (Exception e) {  }

Hier der Speicherort, wo die Bilder abgelegt sind:
Code:
C:\Users\User\Documents\NetBeansProjects\Game\img

Wenn ich nun mein Projekt in NetBeans starte, dann werden ja die Bilder angezeigt, nur wenn ich mein Programm über Internet Explorer ausführe, dann werden keine Bilder angezeigt.

Kann mir Vielleicht jemand helfen, wo das Problem liegen könnte?
Ich danke euch schonmal für die Hilfe.

MfG
 
I

irgendjemand

Gast
das die bilder mit im jar liegen stimmt schon soweit ...
natürlich müssen diese auch relativ zur klasse im richtigen verzeichnis sein

das problem ist vielmehr der aufruf

um daten innerhalb eines jars in einem applet zu laden brauchst du ClassLoader.getResource() bzw getResourceAsStream() ... denn sonst versucht das applet die daten außerhalb des jars zu suchen ... was natürlich fehlschlägt ...

es liegt also nicht daran wie du dein applet auslieferst ... sondern daran wie du die daten innerhalb des applets laden willst
 
E

emailundlos

Gast
Liegt evtl. an den relativen Pfand angeben. Aber es stimmt schon, was irgendjemand schreibt, diese sollten vollständig angegeben werden.
 
Zuletzt bearbeitet von einem Moderator:

bruce85

Bekanntes Mitglied
Ich danke euch für die antworten.

Ich hab das mal so versucht:
Java:
ImageIcon b = new ImageIcon(Game.class.getResource("img/bild1.png"));
bild1 = b.getImage();

leider bekomme ich eine fehlermeldung beim Kompilieren:
Java:
Exception in thread "main" java.lang.NullPointerException

Kann mir Vielleicht jemand ein beispiel Posten, wie ich das Problem lösen könnte?
Auf der Seite Grafikdateien laden und anzeigen ? Byte-Welt Wiki hab ich schon bereits nachgelesen, leider bekomm ich das irgendwie nicht richtig hin.

Ich danke euch schonmal.

MfG
 

Michael...

Top Contributor
Die NPE kommt nicht beim kompilieren, sondern beim Ausführen weil das Bild nicht gefunden wurde. Probiere es mal mit einem Slash vor img, also
Code:
...getResource("/img/bild1.png"));
Oder lege die Bilder parallel zum jar auf dem Server ab, dann sollte die Variante getCodeBase() funktionieren.
 

bruce85

Bekanntes Mitglied
Jetzt funktioniert es, es geht auch ohne diesen Slash am anfang, ich hatte nur die Bilder im falschen Pfad drin.

Ich danke Dir trotzdem für die Hilfe.

MfG
 

L-ectron-X

Gesperrter Benutzer
Spätestens, wenn du das Applet ausführen wolltest, wäre dir die Version aus deinem Eingangspost mit einer [JAPI]AccessControlException[/JAPI] um die Ohren geflogen.
[JAPI]Toolkit[/JAPI] sucht auf der Client-Festplatte nach den Bilddateien, was ein Applet aber nicht darf...
 

bruce85

Bekanntes Mitglied
Danke Dir.
Ich hab noch ein kleines Problem:
Wenn ich mein Programm auf meinem Server hochlade und es per Browser starten möchte, dann wird nur die Startdatei heruntergeladen und kann dann natürlich nicht gestartet werden, da die .jar datei ja dann nicht gefunden wereden kann.
NetBeans erstellt mir folgende dateien:
Code:
C:\Users\User\Documents\NetBeansProjects\Game
    manifest
    master-application.jnlp
    preview-application.html
C:\Users\User\Documents\NetBeansProjects\Game\dist
    Game.jar
    launch.html
    launch.jnlp

Wenn ich die launch.html über meinem Server ausführe, dann befindet sich auf der Seite einen Button, um das Programm zu starten.
Wenn ich dann dort drauf klicke, dann fragt mich FireFox ob ich es speichern oder direkt öffnen möchte.
Ich Klick dann auf öffnen und erhalte dann folgende fehlermeldung:
Code:
java.io.FileNotFoundException: C:\Users\USER~1\AppData\Local\Temp\Game.jar (Das System kann die angegebene Datei nicht finden)

Wie kann ich das beheben?

MfG
 

L-ectron-X

Gesperrter Benutzer

bruce85

Bekanntes Mitglied
Danke Dir.
Wenn ich es direkt im Browser darstellen lass, dann erhalte ich eine Fehlermeldung:
Code:
Fehler. Klicken Sie, um weitere Informationen zu erhalten.

Hier mal meine Game und Solitaire.java Datei:
Game.java:
Java:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package game;
import java.applet.*;
import java.awt.*;
/**
 *
 * @author Christian
 */
public class Game extends Applet {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        new Solitaire();
    }
}

Solitaire.java
Java:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package game;
import javax.swing.JFrame;
/**
 *
 * @author Christian
 */
public class Solitaire extends JFrame {
    public Solitaire() {
        setSize(400,400);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        add(new SolitaireCanvas());
        setVisible(true);
    }
}

Ich benutze bei Solitaire.java JFrame, muss ich das ändern um mein Programm direkt im Browser anzeigen lassen zu können?

Sry, ich war vorhin etwas durcheinander, deshalb kam da nur misst raus. :D

Danke schonmal.

MfG
 

L-ectron-X

Gesperrter Benutzer
Ein Applet kennt keine main()-Methode. Es wird vom Browser über die init()-Methode initialisiert.

Versuchs mal so:
Java:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package game;

import javax.swing.*;

/**
 *
 * @author Christian
 */
public class Game extends JApplet {
 
    /**
     * Initialisiert das Applet.
     */
    public void init() {
        // TODO code application logic here
        new Solitaire();
    }
}

Dein Applet öffnet dann deinen JFrame.
Wobei ich dann aber die Zeile 14 ändern würde in:
[JAVA=14]setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);[/code]
Sonst fliegt dir auch hier dein Code mit einer [JAPI]AccessControlException[/JAPI] um die Ohren, weil ein Applet die VM nicht beenden darf.

Wenn dein Applet nicht in einem Fenster, sondern direkt im Browser laufen soll, ersetzt du Zeile 20 mit:
[java=20]add(new SolitaireCanvas());[/code]

Es kommt aber auch darauf an, von welchem Typ dein Objekt SolitaireCanvas ist.
 

bruce85

Bekanntes Mitglied
Ich danke dir für die antwort.
Ich hab das jetzt mal so geändert wie du es beschrieben hast, wenn ich dann mein Projekt ausführe, erhalte ich eine fehlermeldung:
Java:
java.lang.NoSuchMethodException: game.Game.main([Ljava.lang.String;)

Es kommt aber auch darauf an, von welchem Typ dein Objekt SolitaireCanvas ist.
Hier:
Java:
public class SolitaireCanvas extends JComponent.........................

Danke schonmal.

MfG
 

bruce85

Bekanntes Mitglied
Jetzt hab ich das mal alles mit Eclipse erstellt und nun funktioniert alles.
Irgendwie blick ich bei NetBeans nicht durch, naja, jetzt funktioniert es wenigstens.

Danke trotzdem für die hilfen.

MfG
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
2 Bild auf JApplet zeichnen Java Basics - Anfänger-Themen 18
A JApplet: einbinden von weiteren Jars macht Probleme Java Basics - Anfänger-Themen 2
K JApplet zugriff auf Excel Datei Java Basics - Anfänger-Themen 3
S JApplet macht Probleme Java Basics - Anfänger-Themen 2
P Chatclient JApplet Java Basics - Anfänger-Themen 4
S JApplet mit BufferStrategy problem Java Basics - Anfänger-Themen 4
M Taschenrechner mit JApplet Java Basics - Anfänger-Themen 26
J Netbeans + JApplet-Form Java Basics - Anfänger-Themen 5
M Problem mit Jframe nach JApplet umschreiben Java Basics - Anfänger-Themen 2
? Problem bei JApplet Java Basics - Anfänger-Themen 11
R JApplet und File-Object Java Basics - Anfänger-Themen 10
M JApplet in HTML einbetten > mehrere .class-Dateien Java Basics - Anfänger-Themen 9
Spin JFRame in JApplet Java Basics - Anfänger-Themen 3
B JApplet aktualisieren Java Basics - Anfänger-Themen 2
K JApplet Projekt als jar Datei exportieren Java Basics - Anfänger-Themen 9
R JApplet geht in Eclipse, nicht aber im Browser Java Basics - Anfänger-Themen 2
I URL.openConnection() im JApplet Java Basics - Anfänger-Themen 4
T JApplet JPEG einbinden geht nur "offline" Java Basics - Anfänger-Themen 6
D JApplet menü Java Basics - Anfänger-Themen 8
S .pdf aus JApplet Java Basics - Anfänger-Themen 4
J JApplet ein JFrame öffnen Java Basics - Anfänger-Themen 6
S MS Access und JApplet Java Basics - Anfänger-Themen 12
M Problem mit removeAll() im JApplet Java Basics - Anfänger-Themen 13
D 2 Fragen. (JApplet und Allgemein) Java Basics - Anfänger-Themen 3
S JApplet - getItemCount() Java Basics - Anfänger-Themen 13
D ImageIcon JApplet Java Basics - Anfänger-Themen 2
richis-fragen GlassPane über JScrollPane legen Java Basics - Anfänger-Themen 6
A Server - Client Nachrichtenaustausch über Eventbus Java Basics - Anfänger-Themen 12
P Neue Java v8 JRE Version nicht über alte drüber installierbar: Wie sonst? Java Basics - Anfänger-Themen 7
D Downloadfortschritt von Datei über Google Drive API v3 Java Basics - Anfänger-Themen 10
B großzügiges Pixelraster über Bildschirm legen Java Basics - Anfänger-Themen 7
ravenz Schleife mit for über String Array „zahlen“und prüfen ob Wert „a“ oder „b“ oder „c“ entspricht (mittels || ) Java Basics - Anfänger-Themen 4
L Beim Java Programmstart, mehrere Parameter über die Kommandozeile übergeben Java Basics - Anfänger-Themen 9
sserio Iterierung über ein zweidimensionales Array Java Basics - Anfänger-Themen 16
H Eine Methode über Actionlistener beenden Java Basics - Anfänger-Themen 8
S Java über SSH Java Basics - Anfänger-Themen 13
X Wie erreiche ich, dass ein Robot weitere Attribute hat, die nicht materialisiert sind, sondern nur über get/ set-Methoden simuliert sind? Java Basics - Anfänger-Themen 1
M Wie können Klassen nicht-materialisierte Attribute haben, die nur über get/ set-Mehoden simuliert sind? Java Basics - Anfänger-Themen 6
D Best Practice Ausgabe über direkte Ausgabe oder try-catch? Java Basics - Anfänger-Themen 13
R Eigenschaft über Parameter auslesen und ändern Java Basics - Anfänger-Themen 15
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
W Unterschiede bei Zugriff auf Objekt und Klassenvariablen über einen Getter? Java Basics - Anfänger-Themen 2
W char über die Konsole? Java Basics - Anfänger-Themen 7
EchtKeineAhnungManchmal Hallo :) ich bekomme es nicht hin eine Fehlermeldung auszugeben über die GUI Java Basics - Anfänger-Themen 3
S Array über ein Ausgabemethode in main ausgeben Java Basics - Anfänger-Themen 31
C Potenzberechnung über switch case. Taschenrechner mit Eingabe über einen grafischen Dialog Java Basics - Anfänger-Themen 22
J Wert zurückgeben über get Methode Java Basics - Anfänger-Themen 8
J Eintrag Combobox über einen String auswählen Java Basics - Anfänger-Themen 3
A Array Ansprache einer Zelle über Punktnotation? Java Basics - Anfänger-Themen 3
O Java über cmd benutzen ? Java Basics - Anfänger-Themen 5
J Variablenzugriff über string Java Basics - Anfänger-Themen 18
W Objekte über Scanner Input; ToString Probleme... Java Basics - Anfänger-Themen 4
H Methode über String Wert aufrufen Java Basics - Anfänger-Themen 8
M Java Kompilieren über Package grenzen hinaus Java Basics - Anfänger-Themen 4
M Arrays mit mehreren Werten über JOptionPane initialisieren Java Basics - Anfänger-Themen 12
Tino1993 Ellipse über draw Funktion ohne spur wandern lassen Java Basics - Anfänger-Themen 6
M Mehrere Datenbank zugriffe über tomee.xml regeln? Java Basics - Anfänger-Themen 1
N Input/Output Eine Frage über system.out.println. Java Basics - Anfänger-Themen 10
J Array über Getter erlangen Java Basics - Anfänger-Themen 34
S While-Schleife geht in Endlosschleife über, warum? Java Basics - Anfänger-Themen 6
B OOP-Anfänge über CMD + Editor Java Basics - Anfänger-Themen 30
G Variablen Array Länge über den Konstruktor definieren Java Basics - Anfänger-Themen 4
L Addition von Arrays über die Parameterliste Java Basics - Anfänger-Themen 11
C Datei über relative Pfade einlesen Java Basics - Anfänger-Themen 6
1 Erste Schritte Was denkt ihr über eines meiner ersten Javaprogramme? Java Basics - Anfänger-Themen 2
S Allgemeine Frage über Generics und Vererbungen Java Basics - Anfänger-Themen 5
J Button über Pfeiltasten bewegen Java Basics - Anfänger-Themen 8
E Objekt durch Benutzer über Konsole erzeugen - Java Java Basics - Anfänger-Themen 3
N Eingabe Kommazahlen über Scanner Java Basics - Anfänger-Themen 2
T DoWhile Schleife über mehrere Mothoden Java Basics - Anfänger-Themen 5
C Collections List über Interface zugreifen Java Basics - Anfänger-Themen 32
J Gefilterten Stream über die Konsole ausgeben Java Basics - Anfänger-Themen 1
S Variablen Klassenvariable über Objekt aufrufen Java Basics - Anfänger-Themen 16
S Bilder über Socket Senden Java Basics - Anfänger-Themen 1
K Textdatei auslesen und über Mqtt schicken Java Basics - Anfänger-Themen 4
L Iterieren über eine CSV Datei Java Basics - Anfänger-Themen 7
I GUI über Eclipse oder NetBeans Java Basics - Anfänger-Themen 23
S Klassenaufruf über JFrame Button Java Basics - Anfänger-Themen 3
Java The Hutt SetWerte über verschiedene Klassen Java Basics - Anfänger-Themen 16
L Zugriff auf Attribute eins Objekts über ActionListener Java Basics - Anfänger-Themen 4
O Methode über Leerzeichen Java Basics - Anfänger-Themen 13
I OOP Objektnamen über die Konsole richtig einlesen Java Basics - Anfänger-Themen 9
A Variablen Variablenwert über Konstruktor ändern Java Basics - Anfänger-Themen 3
J MySQL Datumsabfrage über ResultSet in Java-Servlet Java Basics - Anfänger-Themen 4
CptK Interface Bilder über Bildschirm bewegen, bis der Abstand zum vorherigen zu groß wird Java Basics - Anfänger-Themen 13
dapzoo Class File Version zu niedrig? Ausführen über Eingabeaufforderung nicht möglich Java Basics - Anfänger-Themen 14
J Punkt auf,über,unter oder zwischen 2 Geraden Java Basics - Anfänger-Themen 14
CptK Interface Bild über Methode ändern funktioniert nicht Java Basics - Anfänger-Themen 4
R Keine Verbindung zu MySql über Netbeans Java Basics - Anfänger-Themen 15
E Best Practice Jar-file mit zwei Klassen und externer Bibliothek über Konsole erzeugen Java Basics - Anfänger-Themen 13
J Aufruf einer Methode über einen String Java Basics - Anfänger-Themen 11
G Arraynamen über eine Schleife ansprechen Java Basics - Anfänger-Themen 4
S Bild über JButton legen Java Basics - Anfänger-Themen 3
temi Druckeransteuerung über ESC-Sequenz Java Basics - Anfänger-Themen 21
M Methodenaufruf über SQL UPDATE Java Basics - Anfänger-Themen 8
B Könnte jemand über dieses jurze Javaprogramm schauen? Irgendwas funktioniert mit der z-Varible nicht Java Basics - Anfänger-Themen 2
M Java Programm über Batch-Datei ausführen Java Basics - Anfänger-Themen 1
E Wie Passwort-Eingabe (ohne Echo!) über Konsole ? Java Basics - Anfänger-Themen 4
C Erste Schritte Fehler beim *.class Aufruf über cmd.exe Java Basics - Anfänger-Themen 9
R Fragen über den Konstruktor Java Basics - Anfänger-Themen 0

Ähnliche Java Themen

Neue Themen


Oben