kostenloser Webspace werbefrei: lima-city


Problem mit Applet

lima-cityForumProgrammiersprachenJava

  1. Autor dieses Themas

    mannituhp

    Kostenloser Webspace von mannituhp, auf Homepage erstellen warten

    mannituhp hat kostenlosen Webspace.

    In meinem Java-Buch steht ein Beispielapplet, das ich ausprobieren möchte. Leider kann ich es nicht kompilieren. Scheinbar hat der Compiler Probleme mit dem static vor der paint Methode. Könntet ihr bitte mal einen Blich auf das Script werfen und mir helfen?!
    import java.applet.Applet;
    import java.awt.Graphics;
    
    class HelloWorldApplet extends Applet
    {
     public static void paint(Graphics g)
     {
      g.drawString(\"Hello World!\", 50, 25);
     }
    }
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Das liegt vermutlich daran, dass das Applet von \"natur\" aus eine paint-Methode mitbringt und du diese nur überschreibst. Meines Wissens ist die halt nicht static, also kannst du sie auch nicht als static deklarieren. Lass es einfach weg.
  4. Autor dieses Themas

    mannituhp

    Kostenloser Webspace von mannituhp, auf Homepage erstellen warten

    mannituhp hat kostenlosen Webspace.

    habe ich schon ausprobiert. Dann kann ich das Applet zwar kompilieren aber beim Ausführen mit appletviewer kommt die Meldung, dass das Applet nicht initialisiert wurde.
    Kann ja auch mal den Html-code posten:
    <html>
    <body>
    <applet code = \"HelloWorldApplet.class\"
    	width = 350
    	height = 300>
    </applet>
    </body>
    </html>
  5. Das liegt aber nicht an der paint-Methode, sondern daran, dass dir die Standart-Applet-Methoden fehlen, also void init(){}, void start(){}, void stop(){} und void destroy(){}. Und ohne init() als \"constructor-Ersatz\" kanns gar nicht initialisiert werden.

    Das kann dann z.B. so aussehen:
    import java.applet.Applet;
    import java.awt.Graphics;
    
    class HelloWorldApplet extends Applet
    {
     public void paint(Graphics g)
     {
     g.drawString(\'Hello World!\', 50, 25);
     }
     public void init () {
      setLayout(new BorderLayout());
     }
     public void start() {
      repaint();
     }
     public void stop(){}
     public void destroy(){}
    }




    Beitrag geändert: 5.6.2008 22:09:10 von alphara
  6. Autor dieses Themas

    mannituhp

    Kostenloser Webspace von mannituhp, auf Homepage erstellen warten

    mannituhp hat kostenlosen Webspace.

    Laut meinem Buch sollte aber die paint methode reichen um das Applet zu initialisieren.
    Wie würdest du denn den Code verändern damit es Funktioniert.
    Danke schon mal.

  7. Das kann dann z.B. so aussehen:
    import java.applet.Applet;
    import java.awt.Graphics;
    
    class HelloWorldApplet extends Applet
    {
     public void paint(Graphics g)
     {
     g.drawString(\'Hello World!\', 50, 25);
     }
     public void init () {
      setLayout(new BorderLayout());
     }
     public void start() {
      repaint();
     }
     public void stop(){}
     public void destroy(){}
    }



    So sollte es funktionieren glaube ich. Habs nicht getestet.
  8. Autor dieses Themas

    mannituhp

    Kostenloser Webspace von mannituhp, auf Homepage erstellen warten

    mannituhp hat kostenlosen Webspace.

    Funktioniert auch nicht
    In der Eingabeaufforderung steht dass HelloWorldApplet.class nicht öffentlich ist oder keinen öffentlichen Autor hat.
    Die Datei ist nicht schreibgeschützt.
  9. Poste mal deine Eingabe in der Eingabeauffoderung und die genaue Fehlermeldung, denn so kann ich dir kaum helfen.
  10. p**i


    Das liegt aber nicht an der paint-Methode, sondern daran, dass dir die Standart-Applet-Methoden fehlen, also void init(){}, void start(){}, void stop(){} und void destroy(){}. Und ohne init() als \"constructor-Ersatz\" kanns gar nicht initialisiert werden.


    Moin,

    Es reicht vollkommen aus, nur die paint-Methode aufzurufen.
    Alle anderen Methoden sind optional, immerhin existieren sie ja in der Super-Klasse.
    Nur zum overriden sind diese zu nutzen, ansonsten füllen diese nur die Klasse mit Code, der eh nichts bringt.

    import java.applet.Applet;
    import java.awt.Graphics;
    
    public class Test extends Applet {
            
            public void paint(Graphics g) {
                    g.drawString(\"Hello World!\", 50, 25);
            }
    }

    Gruß,
    Puni


    Beitrag geändert: 5.6.2008 22:32:31 von puni
  11. Autor dieses Themas

    mannituhp

    Kostenloser Webspace von mannituhp, auf Homepage erstellen warten

    mannituhp hat kostenlosen Webspace.


    Poste mal deine Eingabe in der Eingabeauffoderung und die genaue Fehlermeldung, denn so kann ich dir kaum helfen.

    Die eingabeaufforderung zeigt folgendes an:
    Laden: HelloWorldApplet.class ist nicht öffentlich oder hat keinen öffentlichen Autor.
    java.lang.IllegalAccessException: Class sun.applet.AppletPanel can not access a member of class HelloWorldApplet with modifiers \"\"
    at sun.reflect.Reflection.ensureMemberAccess(Unknown Source)
    at java.lang.Class.newInstance0(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at sun.applet.AppletPanel.createApplet(Unknown Source)
    at sun.plugin.AppletViewer.createApplet(Unknown Source)
    at sun.applet.AppletPanel.runLoader(Unknown Source)
    at sun.applet.AppletPanel.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

    zum Anzeigen gebe ich appletviewer HelloWorldApplet.html ein
    zum kompilieren: javac HelloWorldApplet.java


  12. Es reicht vollkommen aus, nur die paint-Methode aufzurufen.
    Alle anderen Methoden sind optional, immerhin existieren sie ja in der Super-Klasse.
    Nur zum overriden sind diese zu nutzen, ansonsten füllen diese nur die Klasse mit Code, der eh nichts bringt.


    Habs nochmal nachgelesen und du hast recht, die sind tatsächlich nicht abstrakt.


    Beitrag geändert: 5.6.2008 23:07:13 von alphara
  13. p**i

    Class sun.applet.AppletPanel can not access a member of class HelloWorldApplet with modifiers \"\"


    Die Fehlermeldung sagt schon einiges aus.
    Poste doch bitte nochmal Deinen Code.
  14. Autor dieses Themas

    mannituhp

    Kostenloser Webspace von mannituhp, auf Homepage erstellen warten

    mannituhp hat kostenlosen Webspace.

    Der Java code:
    import java.applet.Applet;
    import java.awt.*;
    
    class HelloWorldApplet extends Applet
    {
     public void paint(Graphics g)
     {
      g.drawString(\"Hello World!\", 50, 25);
     }
    }

    Html Code:
    <html>
    <body>
    <applet code = HelloWorldApplet.class
            width = 350
            height = 300>
    </applet>
    </body>
    </html>



    Beitrag geändert: 5.6.2008 22:52:56 von mannituhp
  15. p**i

    Pack mal vor Dein class nen public, dann sollte das Problem behoben sein :)
  16. Autor dieses Themas

    mannituhp

    Kostenloser Webspace von mannituhp, auf Homepage erstellen warten

    mannituhp hat kostenlosen Webspace.

    OK danke hat funktioniert
  17. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!