# Applets aus dem Browser starten?



## miris (23. Sep 2004)

Hallo 

Ich bin ein Java - Anfänger und habe  Probleme mit Applets und der Entwicklungsumgebung. Ich benutze JBuilder 2.00. Den habe ich mit einem Buch erhalten. Mit diesem habe ich  ein Applet geschrieben. JBuilder hat ein Wizard mit dem sich das Berühmte HelloWorld leicht erzeugen lässt. Auf diese Weise erzeugtes Applet funktioniert im Appletviewer sehr gut. Wenn ich es im Browser anschauen möchte bekomme ich eine Meldung in der Statuszeile des Browsers: Class not found oder so ähnlich.

Ich benutze Win2000, IE und unter Netscape habe ich es auch versucht

Kann jemand helfen wie ich am einfachsten ein Hello World schreibe und im Browser anschaue und mit welcher Entwicklungsumgebung? Tutorials verbunden mit der Entwiclkungsumgebung wären auch toll.

Danke im Vorraus für die Hilfe

Hier noch das Listing von HW.java


```
package hello;

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import borland.jbcl.layout.*;
import borland.jbcl.control.*;

//import com.sun.java.swing.UIManager;
public class HW extends Applet {
  XYLayout xYLayout1 = new XYLayout();
  boolean isStandalone = false;
  String test_var;
  Label helloLabel = new Label("Hello World!");  // Selber eingefügt, Diese Zeile erzeugt ein Label
//Get a parameter value

  public String getParameter(String key, String def) {
    return isStandalone ? System.getProperty(key, def) :
      (getParameter(key) != null ? getParameter(key) : def);
  }

  //Construct the applet

  public HW() {
  }
//Initialize the applet

  public void init() {
    try { test_var = this.getParameter("test", ""); } catch (Exception e) { e.printStackTrace(); }
    try {
    jbInit();
    }
    catch (Exception e) {
    e.printStackTrace();
    }
    add(helloLabel);    // Selber eingefügt, Diese Zeile fügt das Label hinzu
  }

  private void jbInit() throws Exception {
    xYLayout1.setWidth(400);
    xYLayout1.setHeight(300);
    this.setLayout(xYLayout1);
  }
//Start the applet

  public void start() {
  }
//Stop the applet
  
  public void stop() {
  }
//Destroy the applet

  public void destroy() {
  }
//Get Applet information
  
  public String getAppletInfo() {
    return "Applet Information";
  }
//Get parameter info
  
  public String[][] getParameterInfo() {
    String pinfo[][] =
    {
      {"test", "String", ""},
    };
    return pinfo;
  }
//Main method
  
  public static void main(String[] args) {
    HW applet = new HW();
    applet.isStandalone = true;
    DecoratedFrame frame = new DecoratedFrame();
    frame.setTitle("Applet Frame");
    frame.add(applet, BorderLayout.CENTER);
    applet.init();
    applet.start();
    frame.setSize(400,320);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    frame.setLocation((d.width - frame.getSize().width) / 2, (d.height - frame.getSize().height) / 2);
    frame.setVisible(true);
  }
}
```


----------



## dotlens (23. Sep 2004)

applets dürfen nicht in einem package sein, oder zumindest funktioniert es dann nicht 
nimm es aus dem package raus und probiers nochmal...


----------



## L-ectron-X (23. Sep 2004)

Nur um "Hello World" auszugeben fabriziert der JBuilder so viel Code?
Um ein solches Applet zu schreiben braucht man nicht mehr als einen Texteditor.

Dein Problem ist, das der JBuilder zwei Packages importiert, die nicht Standard mäßig in der JVM implementiert sind. Das heißt, der Interpreter kann die darin verwendeten Klassen nicht finden.
Entweder baust Du das Applet so um, dass es ohne diese Klassen auskommt, oder Du lieferst diese Packages dem Benutzer mit aus.


```
import java.applet.*;
import java.awt.*;

public class HelloWorld extends Applet {
  public void init() {
    System.out.println("Hello World");
  }

  public void paint(Graphics g) {
    g.drawString("Hello World", 0, 10);
  }
}
```
Dieses Hello-World-Applet gibt den Text auf der Console und in einem, in einer HTML-Seite eingebetteten, Applet aus.

Für welche Entwicklungsumgebung man sich letztendlich entscheidet, ist u.a Geschmackssache.


----------



## AlArenal (23. Sep 2004)

Das ist nicht zwangsweise ein Problem. Erzeugt man mit dem JBuilder ein JAR, befinden sich darin alle nicht zum JDK befindlichen Class-Dateien. Wenn man externe Packages benutzt, kann man recht gut einstellen, was davon er mit reinpacken soll. So landen auch wirklich nur die benötigten Klassen und Ressourcen im JAR und nicht gleich alles (es sei denn man will es so).


----------



## miris (23. Sep 2004)

Hallo und Danke für die schnellen antworten.

Das rausnehmen aus dem Package hat nicht geholfen (habe nur die Zeile mit dem Package gelöscht).

Als zweites den gesammten Code gelöscht und den Code von L-ectron-X eingefügt. Das funktioniert!


----------



## Pawko (23. Sep 2004)

Warum darf i kein Package im Applet haben?
Das hatte ich noch immer und funktioniert wunderbar.

Beispiel:

*Codeausschnitt eines Programes:*


```
package chat;
import java.util.*;
import java.net.*;

public class chat extends Applet  implements ActionListener{
  TextArea textarea;
  TextField textfield;
  Panel pchat = new Panel();
  Button bsenden;
```


*Code der dazugehörigen HTML Datei:*


```
<html><body>
<p align="center">[b]Michael Beham[/b]</p>
<hr>
<p align="center">[b][/b]</p>


 
  <applet code="chat/chat.class" width=800 height=130>
  </applet>
</p>
</body></html>
```

*Wie ist das Applet gespeichert?*

Verzeichnis:
index.html
chat (Verzeichnis)

Unterverzeichnis chat: 
chat.class
myThread.class
myEmpfangen.class


----------



## MR Q (25. Sep 2004)

Natürlich dürfen Applets in Packages liegen, da hat der L-ectron-X ganz Recht. Die JAVA-Konsole des Browsers müßte eigentlich auch anzeigen, dass da zwei Klassen nicht gefunden werden.


----------

