Zunächstmal soll das Applet mit eingaben aus einem html <FORM> versorgt werden, wahrscheinlich nur oder am besten über Javascript möglich. Dann soll aber das Applet irgendwie ein neues HTML-Fenster öffnen (menü), das wieder ein <FORM> beinhaltet, von dem aus das aufrufende Applet, das ja schon im alten Fernster löppt, ferngesteuert werden soll. Geht das? Muss ich da irgendwas besonders berücksichtigen im Unterschied zu normalem Javascript-zu-Applet, das auf ein und der selben Seite läuft? Zb Fenstername, url oder sowas?
Oder das ursprüngliche Formular soll das Applet in neuem Fenster öffnen, währned das Applet aber im Hintergrund bereits mit der aufrufenden Seite geladen wurde! Ist das machbar?
etwas gefunden, aber funzt das auch im Explorer und auf dem Mac? Und was ist, kann das überhaupt sein, wenn mehrere Instanzen des selben Applets laufen? Zb über mehrere <Applet> tags auf einer seite? Wie weis dann das js, welches applet angesprochen werden soll? kann ich <applet name="nummer5" ...> machen und mit dem js das applet nummer 5 ansprechen?
Warum machst du die eingaben nicht im applet? willst du die eingabe textboxen variabel halten ?
achja alle formular elemente wie buttons textboxen usw brauchen nicht unbedingt ein formular es sei denn du willst mit der post methode daten an ein neues formular weitergeben
am besten beschreib mal ganz genau wie das ablaufen soll damit ich mir das besser vorstellen kann den anfang vor allem sont würde ich auf die idee kommen das das applet die daten selber ausliest und nicht beliefert wird
wenn du doch liefern willst musst du im applet eine methode einbauen die die daten entgegennimmt und mit javascript rufst du dann die methode von dem applet auf und bergibst die werte
Dann soll aber das Applet irgendwie ein neues HTML-Fenster öffnen (menü),
inwieweit ferngesteuert?? meinst du das neue applet soll methoden vom alten benutzen können ? geht auch
du musst nur dafür sorgen das sich die applets kennen da du durch das öffnen der neuen html seite ja das window.document ... bekommen solltest bekommt man sicher auch hin das sich die applets finden
Geht das? Muss ich da irgendwas besonders berücksichtigen im Unterschied zu normalem Javascript-zu-Applet, das auf ein und der selben Seite läuft? Zb Fenstername, url oder sowas?
wie gesagt die müssen sich erstmal gegenseitig kennen dann geht alles genauso wie wenns auf einer seite ist
Oder das ursprüngliche Formular soll das Applet in neuem Fenster öffnen, währned das Applet aber im Hintergrund bereits mit der aufrufenden Seite geladen wurde! Ist das machbar?
du musst zu allererst erstmal die plugin.jar datein ins projekt einbinden da ist das liveconnect drin
die datei befindet sich bei mir in
Programme\j2sdk_nb\j2sdk1.4.2\jre\lib\plugin.jar
guck mal ob du die auch hast wennnicht mussu dir besorgen
dann im programm
import netscape.javascript.*;
import netscape.javascript.JSObject.*;
im html musst du bei den aplets beachten das das mayscript drinsteht
<APPLET name="..." code=".class" width=20 height=20 MAYSCRIPT>
</APPLET>
vom applet aus kannste dann so vor gehen um auf elemente der html seite zu zugreifen
hier ein kleines beispiel mit frames bei mir
Code:
JSObject window= JSObject.getWindow(this);
JSObject parent= (JSObject)window.getMember("top"); //top ist kein name das gehört zum dom von javascript
JSObject mainFrame=(JSObject)parent.getMember("mainFrame"); //mainframe ist ein name
JSObject document=(JSObject)mainFrame.getMember("document"); //dom
JSObject applets=(JSObject)document.getMember("applets"); //dom
von javascript aus kannst du auf das applet so zugreifen
document.appletname.methodevomjavaapplet
oder ich glaube auch
document.applets.applet[0].methode
(weiss jetzt nicht was groß geschireben wird musst du mal unter dom suchen oder die mal selfhtml angucken)
es funzt wenn du das java sunplugin benutzt das ist ja das gleiche für explorer und netzscape mozilla ....
mac weis ich nicht denke aber schon
das liveconnect klappt nur nicht immer ich benutze modzilla und explorer da gibt es einige kleine unterschiede die mir aufgefallen sind das liveconnect für den explorer nutzt intern halt das windowsübliche com also ocx aber das fällt einem nur auf wenn man dann die classennamen debuggt
und mozilla nutzt was anderes modzilla ist bei mir mit liveconnect langsamer als der explorer
Und was ist, kann das überhaupt sein, wenn mehrere Instanzen des selben Applets laufen? Zb über mehrere <Applet> tags auf einer seite? Wie weis dann das js, welches applet angesprochen werden soll? kann ich <applet name="nummer5" ...> machen und mit dem js das applet nummer 5 ansprechen?
Vielen dank und es ist noch nicht entschieden, welche variante genau implementiert wird. Ich will erstmal nur sehen, welche Möglichkeiten ich habe. Das fertige Programm werde ich wahrscheinlich sowieso hier vorstellen. Dieses forum hat schon sehr viel genutzt und warum solle s nicht die früchte sehen. Bei der benutzung von swing o.ä., eingabemasken aus jave hätte ich bedenken wegen der kompatibilität. ich kenen nur zu viele applets, die auf webseiten auftauchen, die eingabemasken haben, die nichts bewirken. im besten fall hängt sich der browser auf. außerdem kann mein applet sich selbst laden (u.u. muss sogar Java erst gestartet werden), wärend die javascript masken schon zur eingabe zur verfügung stehen. änlich wie bei map24.
Applet unsichtbar laden könnte über einen trick realisiert werden: appletgröße aus html auf 10*10 pixel an eienr freien stelle der seite festlegen, vielleicht sogar mit tricks verstecken und das applet sich selbst bei dieser größe in einen blödi-nixtu-modus schalten lassen, das ausgabefenster öffnet sich auf html-knopfdruck mit einer 200x200 pixel großen instanzt des apllets in einem neuen fenster sofort, da es jetzt schon im speicher ist usw...
...das ist natürlich teilweise nur ratsam, wenn genug transfervolumen zur verfügung steht. für den einzelnen surfer wenig aber für den anbieter, ich meine, wenn da jeder der vorbei kommt das ganze applet mit allem drum und dran geladen bekommen, blos weil da mal die seite kurz angetippt wird. bei zu viel traffic würde ich das applet erst dann laden, wenns wirklichv erlangt wird aber bis das mal soweit ist, wenn überhaupt jemals, darf getrickst werden.