mkScheller Geschrieben 21. September 2004 Geschrieben 21. September 2004 Hi, eine Frage zu dem Thema: Ist es möglich, mit (möglichst) wenig Umprogrammierung eine Java-Applikation in ein Applet zu verwandeln? Meine Java-Applikation ist verhätnismäßig riesig und funktionstüchtig. Um daraus ein Applet zu basteln (auf herkömmliche Weise) müsste man doch "...extends Applet" machen und nicht - wie jetzt - "...extends JFrame"? Allerdings würde dies eine große Umprogrammierung mit einigem an Zeitaufwand fordern sowie dem Studieren von Applet und der Funktionsweise&Co. Mit besten Grüssen/Regards Zitieren
Peeter Geschrieben 21. September 2004 Geschrieben 21. September 2004 Naja, du könntest die "Startdatei" für dein Applet schreiben (die mit dem "start(), stop(), ...") und in der start()-Methode kannst du doch deine Applikation aufrufen! (Konstruktor-Aufruf deiner Applikation oder Reflections-Api nutzen oder....) Zitieren
Krain Geschrieben 21. September 2004 Geschrieben 21. September 2004 Eigentlich dürfte das kein grosser Programmieraufwand sein. Du musst nur dein Haupt-Fenster in ein Applet umwandel, wie du schon sagtest. Danach deine Anweisungen aus dem Konstruktor des Fensters in eine Methode public void init() auslagern. Und solange du nur Operationen innerhalb des Apllet-Sicherheistbereiches ausführst dürfte es keine grossen Probleme gebn. Zitieren
mkScheller Geschrieben 22. September 2004 Autor Geschrieben 22. September 2004 Hi, habe nun mittels eclipse (unter export) eine jar-datei erzeugt, die alles beinhaltet, auch die Klasse app.java, die "...extends Applet" beinhaltet. Das "complete.jar" ist unter "c:\runexec" zu finden. Die html-datei beinhaltet dies: <applet code="App" codebase="c:/runexec/" archive="complete.jar" width="800" height="600"> Your browser is completely ignoring the <APPLET> tag! </applet> Wenn ich nun die hmtl-datei ausführe, dann erscheint ein Fenster mit nem roten "X" links oben. In der "Sun Java Console" (unter Extras) steht folgendes: java.lang.ClassNotFoundException: App gefolgt vom stacktrace und Caused by: java.io.FileNotFoundException: c:\runexec\App.class (Das System kann die angegebene Datei nicht finden)... Daher die Schlussfolgerung, dass der was nich finden kann. Kann man das lösen? Wenn ich im HTML "App.class" angebe ändert sich die Fehlermeldung derart, dass dann dasteht "...Caused by: java.io.FileNotFoundException: c:\runexec\App\class.class..." Zitieren
Peeter Geschrieben 22. September 2004 Geschrieben 22. September 2004 <applet codebase="." archive="c:/runexec/complete.jar" code="package.struktur.nicht.vergessen.app.class" <-- das .class MUSS mit dran!! name="Applikation" width="800" height="600" alt="You need Java to run this Applet"> </applet> So ist es richtiger. Passe noch deine Package-Struktur an und ist die "app.class" wirklich (a)pp <-- klein geschrieben?? :eek: Zitieren
mkScheller Geschrieben 22. September 2004 Autor Geschrieben 22. September 2004 Ok, das 'a' war falsch, es ist ein 'A', damit also "App.class". Nutze momentan aber nicht das JAR sondern die class-Files im Ordner "/bin". Danke für den Hinweis/die Hilfe/den Support. Ich denke mal, wenn ich dann das JAR benutzen will, treten wieder irgendwelche Fehler auf. So wie jetzt auch *grr* Weiss eventuell jemand, wie ich die security-Exception (beim Laden der Icons/ImageIcons) umgehe, aber dennoch Bilder laden kann? Diese Bilder müssen aber static sein, da eine andere Klasse auf eine Methode der Hauptklasse und deren Bilder zugreift, wodurch "private [static] Image img_Updating = JApplet.getImage(JApplet.getCodeBase(), "image/updating.gif");" rausfliegt, da das nicht static geht. Oder kann man das quasi irgendwie per casting verändern? Zitieren
Peeter Geschrieben 22. September 2004 Geschrieben 22. September 2004 Tu doch einfach die Images mit in das Jar und greife per new ImageIcon(DeineApplication.class.getResource("Bildname.jpg")); Damit bekommst du die Images aus dem Jar auch wieder heraus... Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.