Avatar billede thobru Nybegynder
19. december 2000 - 12:08 Der er 11 kommentarer og
1 løsning

Aplet på html side der kalder en ny applet !!!

Hejsa !!!

Jeg er igang med at lave et spil i java, det skal køre som et flerbruger spil, på et lokalt netværk - jeg benytter RMI, hvis det er væsentligt.

Det der er mit problem er at jeg ikke fra den første applet som giver brugeren mulighed for enten at oprette et spil eller joine et spil, kan få kaldt den næste applet med det rigtigte indhold.

Et andet problem er at når der fx. vælget at oprette et spil - skal man havde mulighed for at navngive spillet - dette navn skal kunne sendes med til appletten som spillet er i.

Hvis dette ikke kan lade sig gøre, er jeg naturligvis interesseret i en alternativ løsning - den er selvfølgelig også points værd...

/Thobru
Avatar billede disky Nybegynder
19. december 2000 - 12:17 #1
Få dine applets til at snakke sammen via en Server application, som så styrer spillet.

Det virker fint
Avatar billede stigc Nybegynder
19. december 2000 - 12:23 #2
hvorfor lægger du ikke det hele i en applet?
Avatar billede stigc Nybegynder
19. december 2000 - 12:27 #3
//MyApplet_1.java
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;

public class MyApplet_1 extends Applet implements ActionListener{

Label log= new Label(\"Enter name\");
TextField lt = new TextField(20);
Label pw = new Label(\"Enter password\");
TextField p = new TextField(20);
Button login = new Button(\"Login\");
String name, password, urlString;
URL url;

public void init() {
add(log); add(lt); add(pw); add(p); add(login);
login.addActionListener(this);
}

public void start() {}
public void stop() {}
public void destroy() {}

public void actionPerformed(ActionEvent ae) {
if (ae.getSource() == login) {
name = lt.getText();
password =p.getText();
urlString
= \"http://192.168.0.6/sr3su/LMarschoun/Applet/MyApplet_1rcvd.html
?nm=\";

urlString += name;
urlString += \"&pwd=\";
urlString += password;

try {
getAppletContext().showDocument(new URL (urlString));
}
catch (MalformedURLException ex) {
//do nothing
}
}
}
}

//MyApplet_2.java

import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;

public class MyApplet_2 extends Applet implements ActionListener{

Label log2= new Label(\"Enter name\");
TextField lt2 = new TextField(20);
Label pw2 = new Label(\"Enter password\");
TextField p2 = new TextField(20);
Button login2 = new Button(\"Login\");
String name2, password2, urlString2;
URL url2;
MyApplet_1 oa;

public void init() {
add(log2); add(lt2); add(pw2); add(p2); add(login2);
login2.addActionListener(this);
}

public void start() {}
public void stop() {}
public void destroy() {}

public void actionPerformed(ActionEvent ae) {
if (ae.getSource() == login2) {
MyApplet_1 oa = (MyApplet_1)getAppletContext().getApplet (\"MyApplet_1\");

name2 = oa.lt.getText();
password2 = oa.p.getText();

urlString2
= \"http://192.168.0.6/sr3su/LMarschoun/Applet/MyApplet_1rcvd.html
?nm=\";
urlString2 += name2;
urlString2 += \"&pwd=\";
urlString2 += password2;

try {
getAppletContext().showDocument(new URL (urlString2));
}
catch (MalformedURLException ex) {
//do nothing
}
}
}
}

//MyApplet_12.html
<html>
<body>
<APPLET CODE=\"MyApplet_1.class\" NAME=\"MyApplet_1\"></APPLET>
<br><p>
<APPLET CODE=\"MyApplet_2.class\" NAME=\"MyApplet_2\"></APPLET>
</body>
</html>
Avatar billede stigc Nybegynder
19. december 2000 - 12:31 #4
Et lidt langt eksemple jeg fandt på www.java.sun.com, men det går ud på følgende:


applet1navn oa = (applet1navn)getAppletContext().getApplet (\"applet1navn \");

nu er oa en reference til din applet med navnet \"applet1navn\". Igennem denne kan du hente variable, og kalde public metoder!


systemout.println (\"Indhold: \" + oa.lt.getText()) ;


Avatar billede stigc Nybegynder
19. december 2000 - 12:33 #5
Avatar billede thobru Nybegynder
19. december 2000 - 12:42 #6
Hej stigc !

TAk for dit/dine hurtige svar !!!
Kigger på det med det sammen - for at se om du har fået sat en ende på mine søvnløse nætter :-)

/thobru
Avatar billede thobru Nybegynder
20. december 2000 - 20:25 #7
Hej Stigc !!!

Det var alligevel ikke helt det - jeg har jo brug for at når man trykker på en knap på den første applet fx. knappen \"connect to server\" skal denne applet forsvinde og en ny skal komme frem !!!

og dermed også brug for at evt. kunne sende et brugernavn med fra den ene applet til den næste !!!
Avatar billede stigc Nybegynder
20. december 2000 - 23:22 #8
stadig undrer jeg mig over du ikke lægger det i en applet!

Men ok! Det her kræver du har ASP:

Når man trykker på den første applets knap kan du gøre følgende!

public void tryppåknap() {
   

    try { link = new URL (getCodeBase(), \"side2.asp?navn=\" + brugernavn);}
        catch (Exception e) {}   
   
    try { getAppletContext().showDocument(link); } catch (Exception e) {}   
       
    }

så loades \"side2.asp\" hvor vi siger du har applet nummer 2 liggende.

<html>
<applet code=\"applet2.class\" width=500 height=360>
<param name = \"brugernavn\" value =\"<% request(\"navn\") %>\">
</applet>

Denne applet kan derefter få fat i brugernavn igennem sin parameter!



Men det kræver jo ASP på serveren, kender du til ASP?
Avatar billede lorgani Nybegynder
01. februar 2001 - 12:25 #9
Jeg er en begynder og vil gerne lave et servlet der kan skrive og læse fra og skrive til SQL database og
Jag kan ikke få mit servlet for at fungere jeg mener med hjælp af forms kan jeg ikke opdatere eller slet noget.
here coden:

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setContentType(\"text/html\");
    PrintWriter out = new PrintWriter (response.getOutputStream());
    out.println(\"<html>\");
    out.println(\"<head><title>Fagbeskrivelse</title></head>\");
    out.println(\"<body bgcolor=\\\"#aaaaaa\\\">Hello From Fagbeskrivelse ()\");
    out.println(\"<p>Nu kommer tabellen: <table>\");
    out.println(
      \"<tr><td><h3>bogid</td><td><h3><A HREF=http://www.jubii.dk>Navnyy</td><td>\" +
      \"<h3>Forfatter</td><td><h3>Forlag</td><td><h3>Udgavedato</td><td><h3>Pris</td></h3></tr>\"
    );

    try{

    //  Class.forName(\"oracle.jdbc.driver.OracleDriver\");
      Class.forName(\"oracle.jdbc.driver.OracleDriver\");
      Connection con = DriverManager.getConnection(
                    \"jdbc:oracle:thin:@oracle:1521:student\",
                    \"stuk1147\", \"stuk1147\");

      CallableStatement s = con.prepareCall(\"SELECT bogid, navn, forfatter, forlag, udgavedato, pris FROM bog\");

      ResultSet rs = s.executeQuery();


      while (rs.next())
      {
        String bogid = rs.getString(\"bogid\");
        String navn = rs.getString(\"navn\");
        String forfatter = rs.getString(\"forfatter\");
        String forlag = rs.getString(\"forlag\");
        String udgavedato = rs.getString(\"udgavedato\");
        String pris = rs.getString(\"pris\");


        out.println(\"<tr><td>\"+bogid+\"</td><td>\"+navn+\"</td><td>\"+forfatter+\"</td><td>\"+forlag+\"</td><td>\"+udgavedato+\"</td><td>\"+pris+\"</td></tr>\");


      }
      out.println(\"</table> Slut på tabel\");
      String book = \"\";

      out.println(\"<h1>Indtast ny række</h1>\");
      out.println(\"<td><h3>bogid</h3><form name=bogid><input type=text name=bogid><input type=submit></form></td>\");
      out.println(\"<tr><td><h3>navn</h3></td><form name=navn><input type=text name=navn></form></td></tr>\");
      out.println(\"<tr><td><h3>forfatter</h3><form name=forfatter><input type=text name=forfatter></form></td></tr>\");
      out.println(\"<tr><td><h3>forlag</h3><form name=forlag><input type=text name=forlag></form></td></tr>\");
      out.println(\"<tr><td><h3>udgavedato</h3><form name=udgavedato><input type=text name=udgavesdato></form></td></tr>\");
      out.println(\"<tr><td><h3>pris</h3><form name=pris><input type=text name=pris><input type=submit></form></td></tr>\");

        String BogID = request.getParameter(\"BogID\");
        String navn = request.getParameter(\"navn\");
        String forfatter = request.getParameter(\"forfatter\");
        String forlag = request.getParameter(\"forlag\");
        String udgavedato = request.getParameter(\"udgavedato\");
        String pris = request.getParameter(\"pris\");
        book = (BogID + navn + forfatter + forlag + udgavedato + pris);

      if (book != null && book.length()>0) {
        CallableStatement s2 = con.prepareCall(\"INSERT INTO bog VALUES (book)\");
        s2.execute();
        out.println(\"<h2>Ny dag indsat!! \"+book+\"</h2>\");
      }


      // String forfatter = request.getParameter(\"navn\");
      if (forfatter != null && forfatter.length()>0) {
        CallableStatement s2 = con.prepareCall(\"INSERT INTO bog VALUES (7,\'akbar\',bjørn,ITD,1999,pris)\");
        s2.execute();
        out.println(\"<h2>Ny dag indsat!! \"+forfatter+\"</h2>\");
      }


    }
    catch (Exception e) {
      out.println(\"<h1>Fejl!</h1>\");
      out.println(\"Fejlen var:\"+e+\"<br><pre>\");
      e.printStackTrace(out);
      out.println(\"</pre>\");
      e.printStackTrace();
    }

    out.println(\"</body></html>\");
    out.close();
  }

  /**
  * Process the HTTP Post request
  */
  public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setContentType(\"text/html\");
    PrintWriter out = new PrintWriter (response.getOutputStream());
    out.println(\"<html>\");
    out.println(\"<head><title>Fagbeskrivelse</title></head>\");
    out.println(\"<body>\");
    out.println(\"</body></html>\");
    out.close();
  }

  /**
  * Get Servlet information
  * @return java.lang.String
  */
  public String getServletInfo() {
    return \"Fagbeskrivelse Information\";
  }
}


Avatar billede starup Nybegynder
04. maj 2001 - 11:14 #10
Avatar billede stigc Nybegynder
06. maj 2001 - 14:23 #11
havd er der på den side?
Avatar billede skovborg Nybegynder
17. september 2002 - 13:02 #12
ingen ting
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
Kurser inden for grundlæggende programmering

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