Zum Inhalt springen

Applet Problem


Empfohlene Beiträge

Geschrieben

Hallo zusammen,

Es geht um die Programmierung eines Freundes. Dieser hat ein Chatapplet programmiert.

Dieses Applet umfasst allerdings jetzt schon 80kB. Dadurch dauert es natürlich recht lange, bis es geladen und initialisiert ist!

Wie bewerkstelligt man es am besten, dass erst eine Nachricht auf dem Applet erscheint, dass die Daten geladen werden?

Oder kennt einer eine Möglichkeit, wie man ein Applet sinnvoll strukturiert um eine möglichst geringe Ladezeit zu bewerkstelligen?

Dazu muss ich sagen, dass Bilder schon von einem Thread aus dem Applet vom Server geladen werden!

Wie mach ich sowas zum Beispiel mit Java-Klassen?

Also das dynamische Laden von Klassen. Kann mir einer Beispiele oder Beschreibungen einer grundsätzlichen vorgehensweise.

Wäre euch sehr dankbar!

gruss

markus

Geschrieben

Wie meinst du das? Splash-Screen?

Ich hatte es mir so vorgestellt, dass sobald man die HTML-Seite mit dem Applet öffnet ein Text oder ein ProgressBar erscheint, welcher anzeigt, dass das Applet noch geladen wird.

Sobald das Laden des Applets abgeschlossen ist. Soll der AppletFrame mit seinen Panels usw. angezeigt werden!

Gibt es generell Vorschläge, wie man den Code verkleinern kann? z.B. Auslagern von Bildern und Texten versteht sich von selbst! Konfiguration könnte man in eine XML auslagern. Was gibt's da noch?

Geschrieben

Moin!

Na ja, das solange die Anwendung geladen wird halt ein Bild angezeigt wird.

Das lässt sich relativ einfach machen. Einfach bei Goggle nach "java splash screen" suchen. Dann kommen schon ein paar Beispiele. Hat den Nachteil, dass wiederum ein Bild übertragen werden muss, macht den Kohl dann aber auch nicht fett?

ProgressBar wäre auch ne Möglichkeit, kann ich aber jetzt spontan nichts zu sagen.

Und andere Wege Code zu sparen, fallen mir jetzt auch nicht ein.

Gruß, Peter

Geschrieben

Ich hab hier mal einen kleinen Testfall entwickelt!

kann mir einer sagen, wo mein Fehler liegt!

public class TestApplet extends JApplet {


    public JLabel label;

    public void init() {

    }


    public void start() {

        JPanel panel = new JPanel();

        label = new JLabel("Bitte warten ...");

        panel.add(label);

        getContentPane().add(panel);


        Thread th = new Thread(new Loader(this));

        th.start();

    }

}



public class Loader implements Runnable {

   TestApplet c;


    public Loader(TestApplet contentPane) {

        this.c = contentPane;

    }


    public void run() {

       JPanel p = new JPanel();

       for (int i = 0; i < 500; i++) {

           p.add(new JLabel("lbl"+i));

       }

       c.getContentPane().removeAll();

       c.getContentPane().add(p);

       c.repaint();

    }

}

Nach einer gewissen Zeit verschwindet mein Label.

Aber mein neues Panel erscheint nicht!

Was mache ich falsch?

Geschrieben
Dieses Applet umfasst allerdings jetzt schon 80kB. Dadurch dauert es natürlich recht lange, bis es geladen und initialisiert ist!

Das ist jetzt im Grunde nicht direkt eine Antwort auf Deine Frage, aber Java Web Start wäre eine Option.

Mittels Java Web Start "installierte" Programme (sind im Grunde nur signierte Java-Applets) werden auf dem Rechner zwischengespeichert, und nur dann neu heruntergeladen, wenn sich auf dem Server eine neue Datei befindet.

http://java.sun.com/j2se/1.5.0/docs/guide/javaws/developersguide/faq.html ist die FAQ dazu.

Im Grunde kann man jedes Applet zu einer Java Web Start Anwendung machen:

- Zertifikat erzeugen (einmalig)

- Alle Dateien in ein oder mehrere Jar-Archive packen

- Jedes jar mittels zertifikat signieren

- passende jnlp Datei (Config-Datei für Java Web Start) erstellen.

Fertig.

Zum "installieren" des Java-Applets ist dann nur noch das öffnen der jnlp-Datei (z.B. ähnlich dem Applet per http) mittels des Java-Programms "javaws" notwendig.

Einen (unter Umständen entscheidenden) Haken hat die Sache: Auf dem Client muss Sun Java (JRE reicht) installiert sein...

Geschrieben
Einen (unter Umständen entscheidenden) Haken hat die Sache: Auf dem Client muss Sun Java (JRE reicht) installiert sein...

Das muss beim Applet auch so sein - bzw. beim applet muss das neuste Plugin im Browser eingebunden sein.

Funktioniert dieses JNLP auch für Applets oder wie geht das ganze dann vor sich?

Hört sich interessant an!

Ich weiß, dass man über WebStart programme downloaden kann.

Aber der Login in diesem Chat funktioniert über PHP!

Wenn einer den Chat als reine Anwendung hat bringt ihm das nichts!

Über den Chat alleine kann man sich nicht am Server anmelden!

Geschrieben
ich glaube nicht, das Webstart mit Applets funktionert.

"Glauben" heißt "nicht wissen", aber ich weiß, das man so gut wie jede Applet in wenigen Schritten in eine Java Web Start Anwendung verwandeln kann, ohne das Applet an sich (bzw. seine Quelltexte) zu ändern.

Geschrieben

Das weiß ich auch! Das geht doch über eine Klasse im Java3D-Paket!? Hab ich selbst mal verwendet, weiß aber nicht mehr wie die heißt!

Aber wie gesagt, ein Anwendung bringt mir nicht viel, da nutzername und status in appletparametern übergeben werden und nur so die Connection richtig initialisiert wird.

Das hab nicht ich geproggt! :confused:

Gibt wohl keine Möglichkeit, da was anständiges zu machen!

Geschrieben

Servus frquadrat.

Das ist jetzt im Grunde nicht direkt eine Antwort auf Deine Frage, aber Java Web Start wäre eine Option.

Mittels Java Web Start "installierte" Programme (sind im Grunde nur signierte Java-Applets) werden auf dem Rechner zwischengespeichert, und nur dann neu heruntergeladen, wenn sich auf dem Server eine neue Datei befindet.

Deine Aussage hat

a) nicht zum Thema gepasst, da es um ein Appletproblem geht und nicht um Applikationen

B) inhaltliche Fehler, da Applikationen, die mit Webstart verteilt werden, keine signierten Applets sind

Ausserdem war mein ich glaube kein "nicht wissen" (ich weiss nämlich auch, wie der Spruch weitergeht), sondern ein "schaut einfach mal schnell selber in die Doku, da steht das". Aber hier nochmal amtlich: Webstart funktioniert nicht mit Applets!

Peter

Geschrieben

Hallo Peter,

Deine Aussage hat

a) nicht zum Thema gepasst, da es um ein Appletproblem geht und nicht um Applikationen

Jain. Ich stellte klar, dass die von mir geschriebenen Informationen vielleicht nicht unbedingt eine Lösung des Problems darstellen.

B) inhaltliche Fehler, da Applikationen, die mit Webstart verteilt werden, keine signierten Applets sind

Aber hier nochmal amtlich: Webstart funktioniert nicht mit Applets!

Wow. Wenn Du das "amtlich" bestätigst, musst Du Dich natürlich auskennen. Demnach müssen folglich die Applets, die ich mittels Java Web Start verfügbar gemacht habe, Applikationen sein, obwohl ich nichts am Sourcecode selbst geändert habe und diese Applets nach wie vor (trotz signierter Archive) als "normales" Applet nutzbar sind, ein wundersamer Ausnahmefall sein.

Lies mal am besten

http://java.sun.com/products/javawebstart/docs/developersguide.html

Dort gibt es u.a. einen Absatz, der das Applet-Desc Element einer jnlp-Datei beschreibt. Dort steht u.A.

The Java Web Start software has support for launching Java Applets.

Im Gegensatz dazu gibt es natürlich auch Application-Desc Element für Applikationen.

Vorschlagen würde ich, mal einfach die Doku zu lesen, bevor man "amtliche" Falschaussagen macht.

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...