Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Java Applet gescheitert!

Empfohlene Antworten

Veröffentlicht

Hi Leute! Bin gerade an nen Applet beschäfftigt, dass eigentlich prima funktioniert, doch eine Sache bekomm ich ums verrecken nicht hin, und zwar eine Ladeanzeige, bis dass Applet vollständig startet! Kann mir dazu jemand tips geben?

Bin auch unter s_chitzu@web.de erreichbar!

MFG Schitzu

Hi!

Funktioniert denn sowas wie getGraphics().drawString("lala",20,20) nicht, oder willst du einen Status-Bar? Den gibts erst in Swing. Ansonsten Heißt die Devise selbst zeichen. Schau dir die Graphics Dokumentation an.

Gruß

Hardcoder

Hi,

naja das Applet startet, doch bis es vollständig geladen ist hätte ich gern eine Ladeanzeige, und wenn es nur anzeigt, wieviel Prozent bereits geladen wurden, soetwas wird doch im Mediatraker gespeichert oder? Auf alle Fälle hab ich schon ätliches ausprobiert doch nichts will mir gelingen!

Hat vielleicht jemand ein Beispielapplet für mich oder ähnliches, dass ich mir mal anschauen könnte? Es geht also nur um diese Ladeanzeige, ansonsten Funktioniert das Programm!

Wie wärs mit sowas:

public void setState(int state){

Graphics g = this.getGraphics();

g.clearRect(20,20,200,200);

g.drawString(state+"%",20,20);

}

Die Methode schreibst du in dein Applet und rufst sie dann manuell auf und setzt die Prozentanzeige, also z.B. so:

init(){

setState(0);

..

..

setState(20);

..

[mehrCode]

..

setState(40);

[usw]

}

Gruß

Hardcoder

[ 18. Juni 2001: Beitrag editiert von: Hardcoder ]

Hmm, naja damit würde nach und nach die Prozente raufgesetzt, aber es müßte doch acuh direckt gehen, wenn man herausfindet, wieviel Prozent des Bildes bereits im Cache stehen, oder?

Ich weiß nicht, wie du das Bild lädst, evtl. musst du den Stream überschreiben und und dich quasi in die Lademethode reinhängen, wieviel schon geladen wurde. Oder du machste einen neuen Thread der in bestimmten Abständen nachschaut, wieviel vom Bild bereits geladen wurde. Aber ich kenn ja deinen Code nicht, von daher weiß ich auch nicht genau was du machst.

Gruß

Hard*Hellsehen kommt erst nächstes Schuljahr dran*coder

OK, also, zur kurzen Erklärung!

Mein Java Applet zeigt (natürlich in einer HTML-Seite) ein Panorama-Bild! D.H. du stehst z.b. in einen Raum, in dem du dich nach alle richtungen umsehen kannst ...!

Es steckt also eigentlich nicht viel dahinter, jedoch sollte eben beim start des Applets eine Ladeanzeige sein, die ausgibt, wie lange es noch dauert, bis das bild geladen ist!

Hmm, scheint so, als ob das nicht so ohne weiteres geht, da du nicht rausbekommst wieviel von der Datei schon geladen wurde. Du kannst nur rausbekommen, ob sie erfolgreich geladen wurde. Es gäbe nur noch die Möglichkeit, dass du dir die Sourcen anschaust und versuchst dich irgendwo mit reinzuklinken und mitzulesen.

Gruß

Hardcoder

Sorry aber, wie geht das in Java, in C++ kein Problem aber in Java (Bin erst von C++ auf Java umgestiegen).

Hättest du da ein paar Tips?

Mein Tipp wäre, dass du dir java.sun.com die Sourcen von deinem JDK runtersaugst, danach schaust du nach was er eigentlich so alles macht, wenn du ihm sagst er soll das Image laden. Ich denke mal er wird irgendwo einen Stream öffnen und die Daten einlesen. An der Stelle kannst du dann ansetzen, indem du die Methode vom Stream überschreibst und nachschaust wieviel er eingelesen hat. Am Besten du kopierst dir sämtliche Dateien, die quasi "auf dem Weg" zu dem Stream liegen und änderst sie so ab, dass sie andere Namen haben und nicht die Orginal-Klassen aufrufen.

Ich hoffe, dass man versteht was ich meine, ich hab die Angewohnheit mich verdrückt auszukehren. :rolleyes:

Gruß

Hardcoder

Bahnhof! Bis zum einlesenden Stream konnte ich noch folgen aber was soll ich dann mit der Datei tun, gibt es da kein GetSize() oder sowas, wo ich die Größe der Datei ermitteln kann?

Nun relativ simple gehts sooo:

File f = new File("Pfad zur Datei");

int size = f.length();

Hi!

Die gesamte Größe der Datei bekommst du ja raus (Danke TuTuT :) ). Du brauchst nur noch mitzuzählen, wieviel Bytes gelesen wurden und kannst dann mit Hilfe der Gesamtgröße und der geladenen Bytes deine Prozentanzeige berechnen.

Gruß

Hardcoder

ja schon, wie bekom ich jedoch die geladenen Bytes, aus dem cache?

also, wenn du den Stream hast, dann machst du dir ne Variable anzBytes mit demTyp int und überschreibst z.B. die Methode getByte() etwa so:

public Byte getByte(){

anzBytes++;

return super.getByte();

}

oder sowas wie get Line():

public String getLine(){

String tmp = super.getLine();

anzBytes += tmp.toCharArray().length;

}

dann hast du in der Variable anzBytes die anzahl der gelesenen Bytes

Hard*kann doch nicht so schwer sein*coder

Sorry, entweder stell ich mich zu blöd oder ich weiß auch nicht,(*verzweifelnd auf die Tastatur hauend) auch dies haut absolut nicht hin!

Falls es dir weiterhelfen tut:

schau mal unter den Stichpunkten

ProgressMonitor und ProgressMonitorInputStreams damit solltest

du das Problem elegantlösen können. Dazu

gibs irgendwo auf Sun-Webseite Tuturials..

Danke für eure Ratschläge aber nichts davon haut richtig hin!

Wenn ich irgendwann mal meine Seite halbwegs fertig habe und noch ein paar Projekte brauche, dann werd ich mich mal an das Problem dranhängen

Gruß

Hardcoder

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.