Web Browser + HTML Seiten Autoscroll

HI All,

ich will ein Programm in Java schreiben, der HTML Dateien lädt und bei größere (height) HTML, dies automatisch Scrollen… was ist dafür besser geeignet, JavaFX(WebView Component ist auch dabei…) oder doch swing? paar Tips würde mich sehr freuen…

Gruss,
Leyla

Was heißt denn in diesem Kontext “automatisch scrollen”? Sollen einfach nur Scrollbars erscheinen wenn die Content größer als der Container ist oder soll wirklich automatisch gescrollt werden, wenn der Benutzer zB an den unteren Rand der Seite geht?

Ich nehme mal an, es geht einfach nur darum HTML-Seiten darstellen zu können. Für sowas nimmt man einfach eine Browserkomponente. Bei JavaFX hast du eine HTML5-fähige schon gleich dabei und es ist sicherlich nicht verkehrt sich mit JavaFX auseinander zu setzen. Für Swing gibt es entsprechende libs. Ich würde dafür diese hier nutzen:
http://djproject.sourceforge.net/ns/

nein, wenn HTML geladen wird, und die Seite großer/höher, als wie die Gui-darstellung ist, dann soll die (HTML)Seite bis zu ende automatisch nach unten scrollen, paar Sekunden warten, und wieder automatisch hoch scrollen…

?

Dazu könntest du folgendes Versuchen:

  • z.B. ein JScrollPane drumrumpacken (,ggf die Scrollbalken verstecken) und über einen Task den Inhalt scrollen lassen oder
  • du injectest JS-Code in zu ladende Seite.

[QUOTE=Unregistered]nein, wenn HTML geladen wird, und die Seite großer/höher, als wie die Gui-darstellung ist, dann soll die (HTML)Seite bis zu ende automatisch nach unten scrollen, paar Sekunden warten, und wieder automatisch hoch scrollen…

?[/QUOTE]

Ist jetzt natürlich nicht nachzuvollziehen, ob du der ursprüngliche Poster bist, aber…

Wenn du das so willst, dann stellt sich eher die Frage nach dem UI-Design. Ist es nicht eher verwirrend, wenn irgendwas automatisch runter scrollt und dann wieder hoch scrollt? Soll das dazu dienen, dass man die Inhalte lesen kann ohne die Maus zu bedienen? Was wäre dann die richtige Geschwindigkeit? Können es beliebige HTML-Seiten sein? Ganz lustig wird es ja dann bei Seite, die automatisch content nachladen, zum Beispiel Facebook.

Ich würde dazu raten einfach normale Browser-Komponenten zu nehmen, wie die Tomate schon sagte. Dass Seiten größer sind als der Browser ist doch ganz normal. Wenn du das Verhalten des Browser-Fenster aber änderst, dann ist das für den Benutzer erstmal ungewohnt. Ungewohnt kann auch besser sein, muss aber nicht.

Ansonsten wäre es vielleicht gut den Use Case außenrum zu kennen. Sind es HTML-Seiten, die du selbst bereitstellst oder zumindest kontrollieren kannst? Warum könnten die größer sein als dein Browserfenster? Warum ist es notwendig automatisch zu scrollen?

die frage ist also, wie ermittele ich erst die höhe einer geladene HTML Seite? (mit JavaScript wäre das: document.body.clientHeight…)

Dafür würde ich die JS-Bridge der Webkomponente nehmen. Dann kannst du dir z.B. das document.body.clientHeight an die Java-Applikation übergeben lassen.

danke…
beispiel?

Findet sich haufenweise im Internet. Fürs DJProject z.B.:
http://djproject.cvs.sourceforge.net/viewvc/djproject/DJNativeSwing-SWTDemo/src/chrriis/dj/nativeswing/swtimpl/demo/examples/webbrowser/SendingCommands.java?pathrev=R-1_0_1

danke …
für javafx habe ich das hier gefunden: http://stackoverflow.com/questions/16267134/javafx-initializing-js-java-bridge-when-using-fxmlloader

nun muss ich das irgendwie begreifen… :lol: