Daten von HTML-Formular an Applet senden
Thomas
- java
Hallo,
ich hoffe ich bin hier im richtigen Forum für mein Problem. Und zwar arbeite ich derzeit an einem Applet für einen kleinen E-Mail-Client.
Nun soll jedoch ein bereits bestehendes Adressbuch eingebunden werden. Dieses existiert jedoch nur als HTML bzw. JSP-Seite.
Dieses Adressbuch kann ich per showDocument in einem neuen Browser-Fenster aufrufen. Dort kann der Nutzer verschiedene Adressen in einem
Formular auswählen und diese sollen an mein Applet übermittelt werden.
Nun meine Frage:
Gibt es eine Möglichkeit, die Daten an mein Applet zu senden?
(Applet und Formular sind in verschiedenen Fenstern und das Applet
soll nicht neugestartet werden)
Ich hoffe es kann mir jemand helfen. Ich hab schon stundenlang nach einer Lösung gesucht, aber nichts brauchbares gefunden. Innerhalb des selben Fensters kann man das ja z.B. per JavaScript lösen.
Danke schonmal.
Grüße,
Thomas
Hallo Thomas,
Schon seit Netscape-4-Zeiten gibt es etwas, dass sich "LiveConnect" nennt, und eine Schnittstelle zwischen Javascript und Java-Applets ist.
Darüber kannst Du sowohl von JS aus auf das Applet zugreifen als auch umgekehrt auf JS bzw wie JS auch auf das DOM und damit auf Dein Formular.
Dokumentation gibt es unter anderem da: http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Guide:LiveConnect_Overview:JavaScript_to_Java_Communication
Grüße
Daniel
Moin Moin!
Schon seit Netscape-4-Zeiten gibt es etwas, dass sich "LiveConnect" nennt, und eine Schnittstelle zwischen Javascript und Java-Applets ist.
Darüber kannst Du sowohl von JS aus auf das Applet zugreifen als auch umgekehrt auf JS bzw wie JS auch auf das DOM und damit auf Dein Formular.
Das wäre der Zustand in einer idealen Welt. In der Praxis hängt das sehr vom Browser ab, von der Einbindung in die Seite (object classid / object w3c / applet / embed), und im Falle des IEs auch noch davon, ob die Microsoft-Java-Engine oder das Sun-Plugin benutzt wird.
Alexander
Hallo Alexander,
Das wäre der Zustand in einer idealen Welt.
Es funktioniert tatsächlich auch in der realen ziemlich gut.
In der Praxis hängt das sehr vom Browser ab, von der Einbindung in die Seite (object classid / object w3c / applet / embed)
Embed kommt sowieso nicht in Frage, Applet funktioniert, bei Object bin ich mir nicht sicher.
und im Falle des IEs auch noch davon, ob die Microsoft-Java-Engine oder das Sun-Plugin benutzt wird.
Die MS-VM konnte das auch schon, aber die kann man wohl sowieso vergessen, wenn man ernsthaft Java-Anwendungen schreiben möchte.
Grüße
Daniel
Moin Moin!
Das wäre der Zustand in einer idealen Welt.
Es funktioniert tatsächlich auch in der realen ziemlich gut.
Vor ein paar Jahren war das definitiv noch nicht so. Die alten Browser-Versionen waren reichlich zickig, was LiveConnect anbelangt. In die Baustelle hab ich einige Tage Arbeit stecken müssen.
In der Praxis hängt das sehr vom Browser ab, von der Einbindung in die Seite (object classid / object w3c / applet / embed)
Embed kommt sowieso nicht in Frage, Applet funktioniert, bei Object bin ich mir nicht sicher.
Mittlerweile kann man embed wohl wirklich vergessen, NN4 ist hoffentlich gut vergraben.
und im Falle des IEs auch noch davon, ob die Microsoft-Java-Engine oder das Sun-Plugin benutzt wird.
Die MS-VM konnte das auch schon, aber die kann man wohl sowieso vergessen, wenn man ernsthaft Java-Anwendungen schreiben möchte.
Nicht, wenn Du keinen Einfluß darauf hast, welche Browser letztlich beim Kunden zum Einsatz kommen. Im Worst Case (den ich damals berücksichtigen mußte) kommt die MS-VM zum Einsatz und der Kunde weigert sich, die Sun-VM zu installieren. Ich würde mir dieses Theater nicht noch einmal antun wollen, in dem Spiel kann man einfach nicht gewinnen.
Alexander
Hallo Alexander,
Nicht, wenn Du keinen Einfluß darauf hast, welche Browser letztlich beim Kunden zum Einsatz kommen. Im Worst Case (den ich damals berücksichtigen mußte) kommt die MS-VM zum Einsatz und der Kunde weigert sich, die Sun-VM zu installieren. Ich würde mir dieses Theater nicht noch einmal antun wollen, in dem Spiel kann man einfach nicht gewinnen.
Ok, wenn der Kunde sowas wirklich explizit will. Für Windows XP oder spätestens Vista dürfte es diese VM aber gar nicht mehr geben, was Kunden in dieser Hinsicht langsam einschränken sollte ;-)
Was ich meinte war auch, dass man mit der MS-VM einfach nicht vernünftig und schon gar nicht zeitgemäß Java-Programme entwickeln kann. Wenn ein Kunde sowas will, sollte man sich gut überlegen, was das extra kostet, psychische Langzeitfolgen mit einberechnet ;-)
Grüße
Daniel
Hallo Daniel,
danke für die schnelle Antwort, ich werd das mal probieren.
Mir ist allerdings noch nicht ganz klar, wie ich zwischen
zwei Browser-Fenstern kommunizieren kann.
Mein Applet ruft ja eine Seite in einem neuen Fenster auf.
Dort kann der Nutzer eine Auswahl machen und mit einer
Schaltfläche die Auswahl bestätigen (also ein normales Formular).
Wie bekommt nun mein Applet mit, dass der Nutzer den Button
gedrückt hat?
Grüße,
Thomas
Hallo Thomas,
Schon seit Netscape-4-Zeiten gibt es etwas, dass sich "LiveConnect" nennt, und eine Schnittstelle zwischen Javascript und Java-Applets ist.
Darüber kannst Du sowohl von JS aus auf das Applet zugreifen als auch umgekehrt auf JS bzw wie JS auch auf das DOM und damit auf Dein Formular.Dokumentation gibt es unter anderem da: http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Guide:LiveConnect_Overview:JavaScript_to_Java_Communication
Grüße
Daniel
Moin Moin!
Hallo Daniel,
danke für die schnelle Antwort, ich werd das mal probieren.
Mir ist allerdings noch nicht ganz klar, wie ich zwischen
zwei Browser-Fenstern kommunizieren kann.
So wie Du es mit Javascript auch machen würdest. Das Applet erweitert einfach nur Deine Javascript-Möglichkeiten.
Wie bekommt nun mein Applet mit, dass der Nutzer den Button
gedrückt hat?
Durch einen Javascript-onclick-Handler am Button, der eine public-Methode des Applet(-Objekt)s aufruft.
Alexander