Ich habe ein kleines Tool geschrieben, dass ich nun auf einer Website veröffentlichen will.
ähnlich wie auf der folgenden seite, nur eben mit meinem programm: Reflexion und Brechung von Licht
soweit ich informiert bin, kann man applets in html seiten einbinden.
mein derzeitiges programm ist ein herkömmliche windows anwendung, sprich von JFrame abgeleitet.
es besitzt mehrere JPanels, die zu dem Fenster hinzugefügt werden.
kann man auch Jar dateien einbinden, oder müssen es zwingend applets sein?
Ein Applet hat im Gegensatz zu einer Applikation keine main()-Methode.
Statt dessen muss es von Applet bzw. JApplet erben und mindestens die init()-Methode überschreiben.
Natürlich kannst du auch Jar-Dateien einbinden. Wie das geht, steht auch in Murray's Link. Aber trotzdem brauchst du mindestens ein Applet, um dein Programm auf einer Webseite zu starten.
Am Einfachsten ist das, wenn du in deiner Anwenung deine GUI-Komponenten irgendwo auf einem einzigen Haupt-Panel zusammengeführt hast. Dann kannst du dieses Panel einem Applet oder einem Frame hinzufügen. Wie das geht habe ich auch schon mal hier im Forum gezeigt -> Forumsuche.
Alternativ kannst du deine Anwendung zu einer Webstart-Anwendung machen.
ich habe mir das ganze einmal durchgelesen und selber ausprobiert.
soweit ich das verstanden habe, muss ich anstatt extends JFrame einfach extends Applet schreiben.
beim REBUILDEN stell ich einfach von Application auf Applet um und geb die main class (also die Klasse in der extends Applet steht) an.
die html datei habe ich in einem ordner testApplet abgespeichert. hinzu kommt ein ordner packagename. in diesem sind alle .class dateien.
wenn ich nun das ganze im firefox ausführen will, bekomm ich die meldung: fehler, klichen sie, um weitere informationen zu erhalten
Java Plug-in 1.6.0_19
Verwendung der JRE-Version 1.6.0_19-b04 Java HotSpot(TM) Client VM
----------------------------------------------------
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.security.AccessControlException: access denied (java.io.FilePermission feld.png read)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkRead(Unknown Source)
at sun.awt.SunToolkit.getImageFromHash(Unknown Source)
at sun.awt.SunToolkit.getImage(Unknown Source)
at aufstellungsassistent.SpielFeld.<init>(SpielFeld.java:45)
at aufstellungsassistent.Fenster.init(Fenster.java:29)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Ausnahme: java.security.AccessControlException: access denied (java.io.FilePermission feld.png read)
feld.png ist eine Grafik, die ich im meinem Hauptpanel zeichne und in der Applet Class hinzufüge.
Alternativ kannst du deine Anwendung zu einer Webstart-Anwendung machen.
Wenn du mit Swing-Komponnten arbeitest musst du von JApplet erben.
Die AccessControlException bekommst du, weil du das Bild nicht für Applets sondern für Applikationen einbindest. Du greifst wahrscheinlich auf die Verzeichnisebene des Clients zu, was Applets ja verboten ist.
In Applets werden externe Resourcen oftmals über URLs eingebaut.
Zum Laden von Bildern in Swing gibts die sehr effiziente Klasse javax.image.ImageIO.
Beispiel: Grafikdateien laden und anzeigen - Byte-Welt Wiki
Auch dazu gibts im Forum ausreichend Beispielcode. (Forumsuche)