Avatar billede walker Nybegynder
08. juni 2003 - 19:16 Der er 10 kommentarer og
2 løsninger

kald java applet's metoder og variabler

Hej.
Kan nogen fortælle mig hvordan jeg kalder metoder og henter variabler fra en java applet med javascript?
f.eks:

<APPLET ID="app" code="minApplet" width=100 height=100 MAYSCRIPT>
</APPLET>
<SCRIPT language=javascript>
    document.applets["app"].hentText();
    document.write(document.applets["app"].varTal);
</SCRIPT>

det burde virke så videt jeg har kunne finde rundt omkring, men gør det ikke...? kan nogen hjælpe mig her?

mvh
Walker
Avatar billede repsak Nybegynder
08. juni 2003 - 20:30 #1
document.applets[0].hentText();
Avatar billede walker Nybegynder
08. juni 2003 - 20:51 #2
repsak < har jeg også prøvet... jeg får at vide at document.applets[0] er ligmed 'null'... den er ikke 'undefined' men null...
Avatar billede repsak Nybegynder
08. juni 2003 - 21:27 #3
hmmm mystifystisk... dette eksempel virker på min computer:
Du har selvfølgelig ikke klasserne, men kan hurtigt udskifte dem med dine egne

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>
<HEAD>
  <TITLE>Mold Propagation Simulation</TITLE>

<SCRIPT TYPE="text/javascript">



function startCircles() {
  for(var i=0; i<document.applets.length; i++) {
    document.applets[i].startCircles();
  }
}

// Stop simulation for all applets in document.

function stopCircles() {
  for(var i=0; i<document.applets.length; i++) {
    document.applets[i].stopCircles();
  }
}

</SCRIPT>
</HEAD>
<BODY BGCOLOR="#C0C0C0">
<H1>Mold Propagation Simulation</H1>

<APPLET CODE="RandomCircles.class" WIDTH=100 HEIGHT=75>
</APPLET>
<P>
<APPLET CODE="RandomCircles.class" WIDTH=300 HEIGHT=75>
</APPLET>
<P>
<APPLET CODE="RandomCircles.class" WIDTH=500 HEIGHT=75>
</APPLET>

<FORM>
<INPUT TYPE="BUTTON" VALUE="Start Simulations"
      onClick="startCircles()">
<INPUT TYPE="BUTTON" VALUE="Stop Simulations"
      onClick="stopCircles()">
</FORM>

</BODY>
</HTML>
Avatar billede roenving Novice
08. juni 2003 - 21:30 #4
Er det ikke fordi appletten på det tidspunkt, hvor load lige er gået igang ikke er initialiseret ?-)
Avatar billede walker Nybegynder
08. juni 2003 - 21:42 #5
roenving: Jeg har lavet det som en js funktion, som bliver kaldt når jeg trykker på en knap... så appletten skulle være loaded :)
Avatar billede walker Nybegynder
08. juni 2003 - 21:43 #6
Kan det være noget med koden i appletten?
Avatar billede roenving Novice
08. juni 2003 - 21:43 #7
med document.write ???
Avatar billede walker Nybegynder
08. juni 2003 - 21:46 #8
Her er koden for et lille test applet som jeg bruger. Jeg vil gerne kunne få fat i variablen 'text' og kalde metoden 'write'...

public class AppletTest extends JApplet{
    public String text = "alrighty";
    public void init() {
    }
    public void start() {
        getContentPane().setLayout(new FlowLayout());
    }
    public void run() {
    }
    public String write(String str) {
        getContentPane().add(new JLabel(str));
        return "ok";
    }
}
Avatar billede walker Nybegynder
08. juni 2003 - 21:56 #9
roenving ??
Avatar billede walker Nybegynder
08. juni 2003 - 21:58 #10
Jeg forstår ikke helt... når jeg prøver at udskrive værdien af document.applets[0] får jeg 'null'... som om appletten er blevet finalized...
Avatar billede walker Nybegynder
08. juni 2003 - 22:50 #11
ok, fandt problemet... javax.swing.JApplet understøtter det åbenbart ikke... men java.applet.Applet gør...
Avatar billede repsak Nybegynder
08. juni 2003 - 23:02 #12
Hehe ja nogle gange opfører swing sig lidt anderledes... Godt at du fandt ud af det
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester