Avatar billede martin_schou Nybegynder
01. februar 2002 - 15:25 Der er 8 kommentarer og
1 løsning

Applet - hvad kan forhindre afvikling

Hvordan finder jeg ud af, hvorfor jeg ikke kan få en browser til at køre en applet? Appletten kører fint i AppletViewer (følger med NetBeans), så jeg ville umiddelbart tro, at det burde virke i en browser - det gør det bare ikke :-/
Avatar billede kresten Nybegynder
01. februar 2002 - 15:27 #1
Fordi din appletviewer sikkert er en nyere version end JDK 1.1
Avatar billede martin_schou Nybegynder
01. februar 2002 - 15:30 #2
Det er den, det er 1.3.1.

Jeg har brugt swing, som, svjh, ikke findet i 1.1, men jeg kan godt få en simpel swing-applet til at køre i browseren (både Opera, som bruger 1.3.1 og IE5.5, som bruger MS' indbyggede jvm).
Avatar billede kresten Nybegynder
01. februar 2002 - 15:35 #3
svjh? hvad er det?

Anyway, Explorer bruger IKKE noget nyere end JDK1.1 så du kan ikke bruge swing og alle andre lækre ting der er kommet med efter version 1.1.
Den eneste måde at være helt sikker på at din applet kan køre er ved at installere et Java Runtime Enviroment på klienten. Der findes noget der hedder Java plugin som også er i stand til at generere den kode du skal indsætte i din HTML for at få den til automatisk at downloade JRE'et.

Måske har du et gammelt JRE installeret hvis du kan køre en simpel Swing applet? For det lyder... umuligt :)
Avatar billede erikjacobsen Ekspert
01. februar 2002 - 15:37 #4
Du kan jo prøve at se hvad jeg skriver for at afvikle en swingappplet
i IE 5:

http://www.1script.com/applets/rateyourmindpal/
Avatar billede lbhansen Nybegynder
03. februar 2002 - 21:06 #5
under alle omstændigheder, så hjælper det altid at slå din javakonsol til i din browser. Den kan fortælle mange nyttige ting.
Avatar billede professoren Nybegynder
06. februar 2002 - 18:23 #6
Der er flere compatibility problemer med bl.a. javascript/jscript og browser. Hvis du bruger HTML kode til at "indkapsle" java, javascript, el.
jscirpt kode, skal du være opmærksom på det! bl.a. har Netscape nogle keywords der ikke virker i IE, IE har nogen keywords der ikke virker i NS, osv.  Fortælle mig hvilket browser du bruger, så få du en liste over forbudte HTML koder! Er det HTML 3.x eller 4.x du bruger?
Avatar billede martin_schou Nybegynder
08. februar 2002 - 08:00 #7
Jeg har nu konverteret min applet til AWT - den virker stadig fint i AppletViewer, men fandme om den vil køre i en browser. Jeg kaster snart min skærm ud af vinduet!

Jeg smider lige en strippet udgave af appletten, der blot har et baggrundsbillede, der skal gentegnes konstant. Jeg er villig til at smide 200 points ekstra oven i til den, der kan få den til at køre i en browser på min computer!

ARGH!
Avatar billede martin_schou Nybegynder
08. februar 2002 - 08:02 #8
import java.applet.Applet;

import java.awt.Graphics;
import java.awt.Image;
import java.awt.Label;

import java.io.InputStream;

import java.net.URL;

public class AWTApplet extends Applet implements Runnable
  {
    Thread RunningThread;
    Image Buffer;
    Graphics GraphicsBuffer;

    String ImageHost = "http://192.168.1.39";
    String LONHost = "http://192.168.1.39";
    String SSIDirectory = "/SSI/";
    String ImageDirectory = "/img/";
    Image Background;

    public void init()
      {
        setSize( 1013, 609 );
        Buffer = createImage(size().width,size().height);
        GraphicsBuffer = Buffer.getGraphics();
        initImages();
        drawImages();
        initComponents();
      }
    private void initComponents()
      {
        setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
      }


    public void start()
      {
        if (RunningThread == null)
          {
            RunningThread = new Thread (this);
            RunningThread.start();
          }
      }

      public void stop()
      {
        if (RunningThread != null)
          {
            RunningThread.stop();
            RunningThread = null;
          }
      }

      public void run()
      {
          while(true)
          {
              drawImages();

              repaint();
              System.out.println("repaint()");
              Sleep( 5000 );
          }
      }

      private void Sleep( int time )
        {
          try
            {
              RunningThread.sleep( time );
            }
          catch( InterruptedException e )
            {
              e = null;
            }
        }

      public void update(Graphics g)
      {
          paint(g);
      }

      public void paint(Graphics g)
      {
          g.drawImage (Buffer,0,0, this);
      }   

      private String ReadStringValueFromURL( String url )
      {
        String Value = "";
        try
          {
            URL URL_Til_Aflæsning = new URL( LONHost + SSIDirectory + url);
            InputStream IO = URL_Til_Aflæsning.openStream();
            byte[] byteArray = new byte[IO.available()];
            IO.read( byteArray );
            for( int index = 0; index < byteArray.length; index++ )
              {
                Value += (char) byteArray[index];
              }
          }
        catch( java.security.AccessControlException E )
          {
            Value += "{Access Denied}";
            E = null;
          }
        catch( java.net.MalformedURLException E )
          {
            Value += "{Bad URL}";
            E = null;
          }
        catch( java.io.IOException E )
          {
            Value += "{IO Exception}";
            E = null;
          }
        catch( Exception E )
          {
            Value += "{Error}";
            E = null;
          }
        return Value;
      }

    private Image ReadImageFromURL( String url )
      {
        try
          {
            URL adresse = new java.net.URL( ImageHost + ImageDirectory + url );
            Image icon = getImage( adresse );
            if( icon == null )
              {
                System.out.println( "No image. URL: [" + ImageHost + ImageDirectory + url + "]" );
              }
            return icon;
          }
        catch( Exception E )
          {
            E.printStackTrace();
            E = null;
          }
        return null;
      }
    private void drawImage( Image ImageToManipulate, int x_coords, int y_coords, int width, int height )
      {
        GraphicsBuffer.drawImage(ImageToManipulate, x_coords, y_coords, width, height, null);
      }
    private void drawImages()
      {
        drawImage( Background,                              0,  0, 1013, 609 );
      }
    private void initImages()
      {
        Background              = ReadImageFromURL( "ventilationsanlaeg.png" );
      }
  }
Avatar billede martin_schou Nybegynder
12. februar 2002 - 14:00 #9
Jeg har løst problemet. Der skal compiles til java 1.1, og det gøres med kommandoen:

javac -target 1.1 filnavn.java
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