Darstellungsprobleme mit JAVA-Applets
Christoph Schnauß
- programmiertechnik
hallo Forum,
schon seit einiger Zeit habe ich ein paar Probleme bei der Darstellung kleiner Java-Applets. Ich benutze sie selten, und wenn, dann als kleine grafische Schmuckstücke. Und die "Probleme" beginnen bereits bei der Einbindung in HTML. Laut http://de.selfhtml.org/html/multimedia/objekte.htm#java_applets möchte ich mein Applet mit
<object classid="java:anim.class" codetyte="application/java-vm" width="200" height="200"></object>
einbinden. Da tut sich auf meinem lokalen Apache erstmal gar nichts, in gar keinem Browser. Na gut, dann kanns der Apache (2.0.53) eben nur nach dem Zusatz
AddType application/java-vm .class
in der Konfigurationsdatei oder in einer .htaccess. Tut er auch, und Opera, mozilla, Konqueror mögen auch etwas anzeigen - aber der Internet Explorer nicht (obwohl er mit dem Anzeigebeispiel von der angeführten SELFHTML-Seite keine Probleme hat). Also bin ich doch noch bei der "alten" Angabe
<applet code="anim.class"></applet>
geblieben. Da muß ich nicht einmal unbedingt Breite und Höhe angeben und auch der Apache braucht keine zusätzliche Anweisung. Alle meine getesteten Browser haben damit auch keine Probleme.
Jetzt möchte ich aber mein Applet in einem DIV haben. Genauer gesagt: auf einer Seite mit (beispielsweise) zwei DIVs, von denen eines oben positioniert ist und mit "fixed" fest steht und das zweite darunter scrollfähig sein soll. Für die DIVs allein ist das kein Problem. Das zweite, untere, scrollfähige, bekommt zusätzlich einen niedrigeren z-index als das obere, damit es beim Scrollen unter dem oberen "verschwindet". Alles prima, solange ich zum Nachschauen mozilla benutze.
Merkwürdigerweise machen da aber die drei anderen (Opera 7.x und 8, Konqueror, Internet Explorer) nicht richtig mit. Das heißt: Text, der eventuell in dem unteren scrollfähigen DIV steckt, wird brav "unter" das obere geschoben, aber mein Applet schert sich nicht drum und bleibt immer im Vordergrund. Ich habe angenommen, daß das an
<applet code="anim.class"></applet>
liegen könnte und also nochmal auf
<object classid="java:anim.class" codetyte="application/java-vm"
umgestellt und meinen Apache entsprechend instruiert. Siehe da, damit schiebt der IE die Stelle, wo das Applet angezeigt werden sollte (er zeigt nur ein rotes Kreuzchen) unter das obere DIV, aber Opera und Konqueror lassen das Applet immer noch "oben", zeigen es allerdings an. Nur mozilla machts wieder richtig.
Wie behebe ich nun dieses Darstellungsproblem so, daß mir alle Browser mein schnuckliges Applet anzeigen und es zugleich beim Scrollen unter ein anderes DIV schieben können? (Anzeigebeispie kann nachfolgen, ist im Moment noch nicht online)
Grüße aus Berlin
Christoph S.
äh ...
<object classid="java:anim.class" codetyte="application/java-vm" width="200" height="200"></object>
Daß der IE mit einer "Codetyte" nix anfangen kann, war mir schon klar ...
Grüße aus Berlin
Christoph S.
Christoph,
Daß der IE mit einer "Codetyte" nix anfangen kann, war mir schon klar ...
Die Codetyte war auch schon in SELFHTML 8.0 zu finden – dank C&P auf vielen Seiten.
Gunnar
hallo Gunnar,
Die Codetyte war auch schon in SELFHTML 8.0 zu finden
oh, klasse. Kannst du mal sehen, wie sehr ich das verinnerlich habe. Ich hatte das tatsächlich in meinem posting vollständig neu getippselt und nicht mit c&p irgendwoher geholt.
Aber hast du eventuell zur eigentlichen Frage noch einen Hinweis?
Grüße aus Berlin
Christoph S.
Hi,
in der Konfigurationsdatei oder in einer .htaccess. Tut er auch, und Opera, mozilla, Konqueror mögen auch etwas anzeigen - aber der Internet Explorer nicht (obwohl er mit dem Anzeigebeispiel von der angeführten SELFHTML-Seite keine Probleme hat)
Nun, da steht ja auch 'was anderes und zwar ein anderer Mimetype!
Aber ob's daran liegt ist auch eher zu bezweifeln. Ich meine Dein z-index Problem.
so short
Crhistoph Zurnieden
hallo,
in der Konfigurationsdatei oder in einer .htaccess. Tut er auch, und Opera, mozilla, Konqueror mögen auch etwas anzeigen - aber der Internet Explorer nicht (obwohl er mit dem Anzeigebeispiel von der angeführten SELFHTML-Seite keine Probleme hat)
Nun, da steht ja auch 'was anderes und zwar ein anderer Mimetype!
Da steht genauso wie bei mir "application/java-vm" - oder hab ich dich da jetzt falsch verstanden? Aber natürlich habe ich da auch ein bißchen herumgespielt, und mindestens "application/java" gründlich genug durchgekaspert.
Aber ob's daran liegt ist auch eher zu bezweifeln. Ich meine Dein z-index Problem.
Ich denke auch, daß ein eventuelles Verständigungsproblem mit dem MIME-Typ eher peripher ist. Die Sache mit dem z-index beschäftigt mich wesentlich mehr.
Es gibt inzwischen ein online-Beispiel, das aber bitte mit Vorsicht zu behandeln ist (der "Kontext" stimmt noch nicht überall). Unter http://www.christoph-schnauss.de/prog/java/applets1.php und auch den anderen von dort aus erreichbaren Applet-Seiten gibts das Problem zum Anschauen. Ich habe allerdings wegen des IE die Einbindung erstmal bei
<applet>
belassen und im Moment ist in der .htaccess auch kein weiterer MIME-Typ angegeben.
Grüße aus Berlin
Christoph S.
Hi,
Da steht genauso wie bei mir "application/java-vm" - oder hab ich dich da jetzt falsch verstanden?
Jetzt habe ich gerde nochmal geschaut, da steht wirklich "application/java" nicht "application/java-vm".
Aber das das wohl nicht das Problem scheint wohl klar zu sein.
Aber ob's daran liegt ist auch eher zu bezweifeln. Ich meine Dein z-index Problem.
Ich denke auch, daß ein eventuelles Verständigungsproblem mit dem MIME-Typ eher peripher ist.
Obwohl: da weiß man ja nie ;-)
Ich habe zwar keine Java-VM hier auf dem Rechner (nur Kaffe, aber das auch nicht als Plugin) und auch keinen IE aber ich befürchte, das liegt noch nicht einmal an Java. Schmeiß doch stattdessen mal ein Bild rein, ich habe da so meine Vermutungen.
so short
Christoph Zurnieden
hallo,
Ich [...] befürchte, das liegt noch nicht einmal an Java.
Oh, woran denn dann?
Schmeiß doch stattdessen mal ein Bild rein,
Kein Problem. Wird ordentlich angezeigt, scrollt mit und verschwindet wie gewünscht wegen z-index unter dem oberen DIV. Das ist dann aber auch nicht mehr <applet>, sondern <img ...>, und das ist völlig unproblematisch.
ich habe da so meine Vermutungen.
Och, nu sei mal nicht so und gib deine Vermutungen bekannt.
Grüße aus Berlin
Christoph S.
Hi,
Ich [...] befürchte, das liegt noch nicht einmal an Java.
Oh, woran denn dann?
Andreas ist sich da sicher, ich hatte es erst nur vermutet: es liegt an der Implementation der Pluginschnittstelle des Browsers. (Der Vorschlag mit dem Bildchen war nur zur Kontrolle ob die eigentliche Implementation funktioniert. Hätte mich zwar gewundert, aber sicher ist sicher.)
D.h. leider auch, das nix zu machen ist.
ich habe da so meine Vermutungen.
Och, nu sei mal nicht so und gib deine Vermutungen bekannt.
Ich wollte da erst noch nachschauen, war mir aber zu spät dafür. Es gibt Leute, die müssen morgens früh raus.
Gut, viele Leute werden 09:00 nicht unbedingt als früh erachten ... ;-)
(Ich stricke gerade ein Netzwerk physikalisch um, das kann ich natürlich erst nach Büroschluß machen. Blöderweise muß ich die Berichte aber morgens abliefern. Gottseidank kommt der Verantwortliche aber nie vor 10:00 in's Haus ;-)
so short
Christoph Zurnieden
hallo,
Andreas ist sich da sicher [...] es liegt an der Implementation der Pluginschnittstelle [...]
D.h. leider auch, das nix zu machen ist.
Die Erklärung klingt plausibel und war auch der Grund, weshalb ich bisher bei <applet> geblieben war. Es war jetzt erst das durchaus im IE darstellbare Beispiel in http://de.selfhtml.org/html/multimedia/anzeige/object_java.htm, bei dem es ja <object> gibt, das mich dazu gebracht hat, es doch nochmal damit zu versuchen. Das Beispiel stellt der IE ja dar, aber mein Applet mit dieser Einbindung nicht. Es kann schon sein, daß ich da eher noch irgendwas an meinem Apache machen muß bzw. online mit einer .htaccess, aber ich bin da in der Apache-Doku auch noch nicht fündig geworden.
Aber das ist eigentlich das kleinere Problem. Schließlich müßte ich eh noch schauen, ob und wie ich eine Alternative für nicht-javafähige Browser einbaue. Das größere Problem, für das ich zur Zeit noch keine Erklärung habe, ist die Sache mit dem z-index. Firefox macht es, und der nutzt schließlich auch nur ein plugin. Opera und Konqueror verhalten sich wie der IE, lassen es also im Vordergrund.
Grüße aus Berlin
Christoph S.
Hi,
Das Beispiel stellt der IE ja dar, aber mein Applet mit dieser Einbindung nicht.
Kann es am Applet selber liegen (an der unterschiedlichen Mime-Angabe lag's ja nicht, sagtest Du)? Ja, ich weiß, aber beim IE wundert mich schon lange nix mehr.
Aber das ist eigentlich das kleinere Problem. Schließlich müßte ich eh noch schauen, ob und wie ich eine Alternative für nicht-javafähige Browser einbaue.
Wenn es nur ein graphisches Gimmik ist: laß es ganz oder bau ein statisches Bildchen >;->
Das größere Problem, für das ich zur Zeit noch keine Erklärung habe, ist die Sache mit dem z-index. Firefox macht es, und der nutzt schließlich auch nur ein plugin. Opera und Konqueror verhalten sich wie der IE, lassen es also im Vordergrund.
Nein, es geht nicht um ein Plugin an sich, sondern um die Impementation des Plugins (auch hat MS seine eigene Vorstellung davon wie Java implementiert werden muß). Der Mozilla baut es korrekt in die Hierarchie ein, die anderen machen es dagegen nicht. Beim Konqueror könntest Du es noch selber reparieren (ich habe keine aktuellen Quellen, weiß daher nicht wie komplex das ist), beim Opera zur Not mit oder ohne Bargeld beantragen aber beim IE geht gar nix. Höchstens hoffen.
Hör' also auf vor die Wand zu laufen, da holst Du Dir eh nur Beulen und denk' Dir 'was anderes aus. Da ich und wahrscheinlich noch einige andere mit schlechten Augen und kleinen Monitoren nur 800x600px darstellen lassen mag ich die fetten feststehenden Header/Footer/Seitenmenüs eh nicht. Ja, ich weiß: hat mit Deinem Problem rein gar nix zu tun, ich wollt's auch nur noch mal loswerden ;-)
Also: laß die Spielerei mit dem Scrollen auch wenn's sehr ärgerlich ist und bau' eine "statische" Seite.
Was? Ich und zur Resignation auffordern? Wie kommst Du denn darauf? ;-)
so short
Christoph Zurnieden
hi,
Kann es am Applet selber liegen (an der unterschiedlichen Mime-Angabe lag's ja nicht, sagtest Du)? Ja, ich weiß, aber beim IE wundert mich schon lange nix mehr.
Kann eigentlich nicht. Habs zwar selber gebaut, und da kann man ja eh nie wirklich sicher sein *g*. Aber es tritt auch bei "fremden" Applets auf - ich hab mir das von der Beispielseite in SELFHTML mal auf den eigenen Rechner gezogen und es über den lokalen Apache aufzurufen versucht - da hat es plötzlich dieselben Probleme. Dann muß es eben doch irgendwo am Apache noch was geben.
Hör' also auf vor die Wand zu laufen
Och, das baut mich jetzt ja richtig auf :-(
Da ich und wahrscheinlich noch einige andere mit schlechten Augen und kleinen Monitoren nur 800x600px darstellen lassen mag ich die fetten feststehenden Header/Footer/Seitenmenüs eh nicht.
Schlecht sehen kann ich auch ganz gut (das rechte Auge ist so gut wie funktionslos). Und Browserfenster mit 800x600 (abzüglich Browserschaltflächen usw.) berücksichtige ich noch. So fürchterlich "fett" sind meine feststehenden Teile auch nicht, grrrr.
Was? Ich und zur Resignation auffordern? Wie kommst Du denn darauf? ;-)
Ich wußte bisher nicht, daß ausgerechnet du Gedanken lesen kannst.
Grüße aus Berlin
Christoph S.
Hi,
(Oh, heut' mal früh Feierabend! Naja, kein Material mehr, dsa gibt noch ordentlich Palaver morgen)
Aber es tritt auch bei "fremden" Applets auf - ich hab mir das von der Beispielseite in SELFHTML mal auf den eigenen Rechner gezogen und es über den lokalen Apache aufzurufen versucht - da hat es plötzlich dieselben Probleme.
Ah, na das ist doch schon mal 'was!
Dann muß es eben doch irgendwo am Apache noch was geben.
Leider nicht zwingend.
Aber wahrscheinlich, ja.
Was melden denn die Header? Mal ganz primitiv die Selfhtml-Seite einmal extern und einmal intern verglichen? Wenn Du dafür nix zur Hand hast: der Mozilla und ich glaube auch der Firefox können das anzeigen wenn einkonfiguriert. Aber wem sage ich das! ;-)
Hör' also auf vor die Wand zu laufen
Och, das baut mich jetzt ja richtig auf :-(
Ja, da bin ich bekannt für >;->
So fürchterlich "fett" sind meine feststehenden Teile auch nicht, grrrr.
Aua, aua! Doch nich' gleich hauen! Immer auf die Dicken! ;-)
Was? Ich und zur Resignation auffordern? Wie kommst Du denn darauf? ;-)
Ich wußte bisher nicht, daß ausgerechnet du Gedanken lesen kannst.
Tja, kannste ma' sehen! ;-)
(was heißt hier überhaupt "ausgerechnet ich"?)
so short
Christoph Zurnieden
Hi,
Jetzt möchte ich aber mein Applet in einem DIV haben. Genauer gesagt: auf einer Seite mit (beispielsweise) zwei DIVs, von denen eines oben positioniert ist und mit "fixed" fest steht und das zweite darunter scrollfähig sein soll. Für die DIVs allein ist das kein Problem. Das zweite, untere, scrollfähige, bekommt zusätzlich einen niedrigeren z-index als das obere, damit es beim Scrollen unter dem oberen "verschwindet". Alles prima, solange ich zum Nachschauen mozilla benutze.
Einige Browser sind nicht in der Lage, Plugins (Java, Flash, ...) per z-index unter anderen Inhalten zu verstecken.
Merkwürdigerweise machen da aber die drei anderen (Opera 7.x und 8, Konqueror, Internet Explorer) nicht richtig mit. Das heißt: Text, der eventuell in dem unteren scrollfähigen DIV steckt, wird brav "unter" das obere geschoben, aber mein Applet schert sich nicht drum und bleibt immer im Vordergrund. Ich habe angenommen, daß das an
<applet code="anim.class"></applet>
liegen könnte
Es liegt an der Tatsache, daß ein Plugin benutzt wird.
und also nochmal auf
<object classid="java:anim.class" codetyte="application/java-vm"
umgestellt und meinen Apache entsprechend instruiert. Siehe da, damit schiebt der IE die Stelle, wo das Applet angezeigt werden sollte (er zeigt nur ein rotes Kreuzchen) unter das obere DIV,
Der IE erkennt das nicht mehr als Applet, startet das Plugin (java vm) nicht, also ist da kein Plugin, also auch kein Problem mit dem z-index.
Wie behebe ich nun dieses Darstellungsproblem so, daß mir alle Browser mein schnuckliges Applet anzeigen und es zugleich beim Scrollen unter ein anderes DIV schieben können?
Schreib an Bill Gates, er soll sofort alle IE dieser Welt durch eine korrigierte Version ersetzen.
cu,
Andreas