Java Applet und Application

Loki2

Erfahrenes Mitglied
Hallo

Wie bekomme ich ein Applet auch als Application zum laufen
Mein einziges Problem ist eigentlich das in der init() methode grundsätzlich ein Parameter abgefragt wird der dem Applet übergeben wird. Das ist aber wirklich nur nötig wenn die Anwendung als Aplett gestartet wird. Soll sie als Application laufen wird das nicht benötigt. Trotzdem wird die init() methode aufgerufen und getParameter("myPara") ausgeführt was dann zu einer NullPointerException führt :(

Wie kann ich das verhindern? Kann ich irgendwie abfragen ob die Anwendung als Aplication oder Aplett gestartet wurde? :confused:

Vielen Dank schon mal.

Gruß und so
Loki2
 
Hi,

soweit ich weiß ist die

Code:
public static void main (String[] args) { }

einer Applikation das, was für ein Applet die

Code:
init() { }

bedeutet. Somit denke ich, dass es reichen würde, den Inhalt aus der init() - ohne getParameter,... (appletspezifischen Aufrufen) - in die main zu übernehmen.

Vermutung:
Die init() wird - so kann ich mir vorstellen - aus der Klasse Applet (Konstruktor) gerufen, das würde dann heißen nicht von dieser Klasse abzuleiten.

// Edit: Hab jetzt nochmal nachgeschaut und bemerkt, dass ich mit meinen Vermutungen falsch lag. Warum also, bei Dir diese init() gerufen wird - ohne selbst Hand angelegt zu haben - kann ich mir nicht erkären. Dazu sollte man dann schon den Code dazu sehen.

Gruß

Romsl
 
Zuletzt bearbeitet:
Hi,

vielen Dank erstmal für die Antwort.
Ich habe den Fehler jetzt auch gefunden.

Vielleicht gibt es ja eine sinnvollere Methode ein Applet und eine Application zu vereinen.

So lasse ich das Aplett als Application laufen:

Code:
public class MyHybridApp extends JApplet {

    public static void main(String[] args) {
          Applet applet = new MyHybridApp();
          mainAppletFrame = new AppletFrame("MyHybridApp", applet, 300, 200);        
    }
}
AppletFrame:

Code:
class AppletFrame extends Frame {
    
    public AppletFrame(String title, Applet applet, int width, int height) {
        // create the Frame with the specified title.
        super(title);

        this.add(applet);

        // Start the applet.
        //applet.init(); <-- deswegen wurde immer die init() methode aufgerufen wenn es als normale App lief...
        applet.start();
        this.setSize(width, height);
        this.setVisible(true);

        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent event) {
                dispose();
            }}); 
    }
}
Ist es so sinnvoll oder eher völliger quatsch

Dann noch eine kurze Frage zu Pfadangaben:
Mein Programm muss auf Dateien in einem Unterverzeichnis zu greifen. Starte ich es als Application lautet die Pfadangabe:
Code:
new File("bin/xml/transformer.xsl")
Starte ich es aber als Aplett muss ich folgendes verwenden:

Code:
new File("xml/transformer.xsl")

Wie kommt das? Liegt das an Eclipse?

Gruß und so
Loki2
 
Sobald ich das Applet aus Eclipse starte wird in dem bin Verzeichnis die Datei java.policy.applet angelegt also vermute ich mal das es daran liegt. Wie kann ich Eclipse jetzt sagen das es die Datei einen Ordner höher anlegen soll

Gruß und so
Loki2
 
Zurück