Applet wird nicht initialisiert

Ich schreibe grade ein Applet welches trotz syntaktischer richtigkeit nicht initialisiert wird. Der Appletviewer von BlueJ sagt:

"Start: Applet nicht initialisiert"

und wenn ich es im Browser laufen lasse(n will) kommt:

Java Plug-in 1.6.0\_20
Verwendung der JRE-Version 1.6.0\_20-b02 Java HotSpot(TM) Client VM
Home-Verzeichnis des Benutzers = D:
----------------------------------------------------
c: Konsole löschen
f: Objekte in Finalisierungswarteschlange finalisieren
g: Speicherbereinigung
h: Diese Hilfemeldung anzeigen
l: ClassLoader-Liste ausgeben
m: Speicherbelegung anzeigen
o: Protokollierung auslösen
q: Konsole ausblenden
r: Richtlinien-Konfiguration neu laden
s: System- und Bereitstellungseigenschaften ausgeben
t: Threadliste ausgeben
v: Thread-Stack ausgeben
x: ClassLoader-Cache löschen
0-5: Trace-Stufe auf setzen
----------------------------------------------------


java.lang.reflect.InvocationTargetException
 at com.sun.deploy.util.DeployAWTUtil.invokeAndWait(Unknown Source)
 at sun.plugin2.applet.Plugin2Manager.runOnEDT(Unknown Source)
 at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
 at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
 at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.RuntimeException: java.lang.IllegalAccessException: Class sun.plugin2.applet.Plugin2Manager$12 can not access a member of class Syrakus with modifiers ""
 at sun.plugin2.applet.Plugin2Manager$12.run(Unknown Source)
 at java.awt.event.InvocationEvent.dispatch(Unknown Source)
 at java.awt.EventQueue.dispatchEvent(Unknown Source)
 at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
 at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
 at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
 at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
 at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
 at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.IllegalAccessException: Class sun.plugin2.applet.Plugin2Manager$12 can not access a member of class Syrakus with modifiers ""
 at sun.reflect.Reflection.ensureMemberAccess(Unknown Source)
 at java.lang.Class.newInstance0(Unknown Source)
 at java.lang.Class.newInstance(Unknown Source)
 ... 9 more
Ausnahme: java.lang.reflect.InvocationTargetException

Hier noch der Quelltext:

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

class Syrakus extends Applet
{
 int x;
 TextArea output;

 //Für die Nutzung als Kosolen-Anwendung
 static void main( String[] args )
 {
 int x;
 if( args[0] != null && args[0] != "" )
 x = Integer.parseInt( args[0] );
 else
 x = 31;
 while( x != 1 ) 
 {
 System.out.println( "f(" + x + ") = " + ( x = f(x) ) );
 }
 }

 public void init()
 {
 x = 31;
 output = new TextArea();

 while( x != 1 )
 {
 output.append( "\nf(" + x + ") = " + ( x = f(x) ) );
 output.setColumns( output.getColumns() + 1 );
 }
 }

 public static int f( int x )
 {
 if( x % 2 == 0 )
 return x / 2;
 else if( x % 2 == 1 )
 return ( 3 \* x ) + 1;
 else
 return 0;
 }
}

Ich hoffe ihr könnt mir helfen

Hi,
in eclipse geht das hier:

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

public class Syrakus extends Applet
{
 public Syrakus()
 {
 init();
 }

 int x;
 private TextArea output = null;

 //Für die Nutzung als Kosolen-Anwendung
 static void main( String[] args )
 {
 int t;
 if( args[0] != null && args[0] != "" )
 t = Integer.parseInt( args[0] );
 else
 t = 31;
 while( t != 1 ) 
 {
 System.out.println( "f(" + t + ") = " + ( t = fx(t) ) );
 }
 }

 public void init()
 {
 x = 31;

 this.add(getoutput());

 while(x != 1)
 {
 output.setText(output.getText() + "\nf(" + x + ") = " + (x = f(x)));
 output.setColumns(output.getColumns() + 1);
 }
 }

 public TextArea getoutput()
 {
 if (output == null)
 {
 output = new TextArea();
 }
 return output;
 }

 public int f(int i)
 {
 if( i % 2 == 0 )
 return i / 2;
 else if( i % 2 == 1 )
 return ( 3 \* i ) + 1;
 else
 return 0;
 }
 public static int fx(int i)
 {
 if( i % 2 == 0 )
 return i / 2;
 else if( i % 2 == 1 )
 return ( 3 \* i ) + 1;
 else
 return 0;
 }
}

Dein Fehler ist, das du die Variable x 3 mal benutzt, außerdem muss die Methode f(x) sowohl statisch wie auch nicht statisch sein.
Lg Knerd

Dein Fehler ist, das du die Variable x 3 mal benutzt, außerdem muss die Methode f(x) sowohl statisch wie auch nicht statisch sein.

Also wenn ich deine Lösung so kopiere, funktioniert diese, wenn ich nur die von dir genannten „Fehler“ in meiner Klasse berichtige geht es nachwievor nicht.

Da ich mein x auch nie als public deklariere und nie this benutze erwarte ich dahingehend keine Probleme. Warum die nicht-statische Methode init() kein statisches f(int x) aufrufen darf währe mir auch ein rätsel.

Hi,
ok ich hab das nochmal alles durchgeguckt, dein Hauptproblem ist, das applet muss als public definiert werden.
Lg Knerd