# Applet läuft nicht im Browser



## Huitzlipochtli (28. Jan 2012)

Hallo an alle,
habe ein Problem damit, mein Applet in eine Website einzubauen. In Netbeans läuft das Applet, und andere Applet-Beispiele aus dem Netz laufen auch auf der Website. 
Hab den Verdacht, dass es entweder an der Java-Version liegt in der das Applet geschrieben ist oder an dem Package ... Weiß aber net wie ich das rausbekommen soll und was ich dagegen tun könnte . Bin dankbar für jede Hilfe.

So versuche ich das einzubinden : 

```
<applet code="parametervariieren.class" codebase="http://file1.npage.de/011121/38/html" width="400" height="400" applet=""></applet>
```

Fehlermeldung im Browser lautet :

```
Java-Plug-in 1.5.0_30
Verwendung der JRE-Version 1.5.0_30-b03-389-9M3425 Java HotSpot(TM) Client VM
Home-Verzeichnis des Benutzers = /Users/mustermann
```


```
package normalverteilung;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
import java.text.*;

import javax.swing.JApplet;

/**
 *
 * @author ...
 */
public class ParameterVariieren extends JApplet
{
    public Dimension appSize;
    public int appWidth;
    public int appHeight;

    public double mü;
    public double varianz;

    public final double müMax = 3;
    public final double varianzMax = 3;
    public final double varianzMin = 1;
    
    public final int graphPunkte = 100;//Anzahl der Punkte des Graphen

    public final double pMax = 0.4;//größter dargestellter p-Wert
    public final double zMax = 3;//größter dargestellter z-Wert

    public final int pTeilung = 10;//Anzahl der Unterteilungen der p-Achse
    public final int zTeilung = 17;//Anteil der Unterteilungen der z-Achse

    public double[] zWerte;

    public int[] xPos;//x-Position der Graphen-Punkte
    public int[] yPos;//y-Position der Graphen-Punkte

    public int müLabelNumber;//Position der müAnzeige im Contenpane
    public int varianzLabelNumber;//Position der varianzAnzeige im Contenpane

    @Override
    public void init()
    {
        setSize(new Dimension(600, 400));
        appSize = getSize();
        appWidth = getWidth();
        appHeight = getHeight();

        //Initialisiere Array von z-Werten zum Berechnen der p-Werte
        zWerte = new double[graphPunkte];
        double zSchrittweite = 2 * zMax / graphPunkte;
        for(int i = 0; i < graphPunkte; i++)
            zWerte[i] = -zMax + i * zSchrittweite;

        //Initialisiere Array mit xPositionen der Graph-Punkte
        xPos = new int[graphPunkte];
        int xSchrittweite = appWidth / graphPunkte;
        for(int i = 0; i < graphPunkte; i++)
            xPos[i] = xSchrittweite * i;

        //Setze Startwerte der Verteilung
        setMü(0);
        setVarianz(1);

        setBackground(Color.yellow);

        setLayout(new GridBagLayout());

        //Zeichenfläche für Funktionsgraph hinzufügen
        GridBagConstraints top = new GridBagConstraints();
        top.gridx = 0;
        top.gridy = 0;
        top.gridwidth = 3;
        top.fill = GridBagConstraints.BOTH;
        Koordinatensystem koord = new Koordinatensystem();
        add(koord, top);

        //Mü-Label hinzufügen
        GridBagConstraints midleft = new GridBagConstraints();
        midleft.gridx = 0;
        midleft.gridy = 1;
        JLabel müLabel = new JLabel("Erwartungswert \u03BC : ");
        add(müLabel, midleft);

        //Anzeige für aktuelles Mü hinzufügen
        GridBagConstraints midmid = new GridBagConstraints();
        midmid.gridx = 1;
        midmid.gridy = 1;
        JLabel müAktuell = new JLabel();
        müLabelNumber = getContentPane().getComponentCount();
        add(müAktuell, midmid);
        aktualisiereMüAnzeige();

        //Schieberegler für Mü hinzufügen
        GridBagConstraints midright = new GridBagConstraints();
        midright.gridx = 2;
        midright.gridy = 1;
        midright.fill = GridBagConstraints.HORIZONTAL;
        JSlider müEinstellen = new JSlider((int)(- müMax * 10), (int)(müMax * 10), 0);
        müEinstellen.setMajorTickSpacing(3);
        müEinstellen.setPaintTicks(true);
        müEinstellen.addChangeListener(new müListener());
        add(müEinstellen, midright);

        //SigmaQuadrat-Label hinzufügen
        GridBagConstraints bottomleft = new GridBagConstraints();
        bottomleft.gridx = 0;
        bottomleft.gridy = 2;
        bottomleft.anchor = GridBagConstraints.EAST;
        JLabel sigma = new JLabel("Varianz \u03C3\u00B2 : ");
        add(sigma, bottomleft);

        //Anzeige für aktuelles SigmaQuadrat hinzufügen
        GridBagConstraints bottommid = new GridBagConstraints();
        bottommid.gridx = 1;
        bottommid.gridy = 2;
        JLabel sigmaAktuell = new JLabel();
        varianzLabelNumber = getContentPane().getComponentCount();
        add(sigmaAktuell, bottommid);
        aktualisiereVarianzAnzeige();

        //Schieberegler für SigmaQuadrat hinzufügen
        GridBagConstraints bottomright = new GridBagConstraints();
        bottomright.gridx = 2;
        bottomright.gridy = 2;
        bottomright.fill = GridBagConstraints.HORIZONTAL;
        JSlider varianzEinstellen = new JSlider((int)(varianzMin*10), (int)(varianzMax * 10), (int)(varianzMax/2 * 10));
        varianzEinstellen.setMajorTickSpacing(1);
        varianzEinstellen.setPaintTicks(true);
        varianzEinstellen.addChangeListener(new VarianzListener());
        add(varianzEinstellen, bottomright);
    }

    public void setMü(double mü)
    {
        this.mü = mü;
        //Initialisiere Array mit yPositionen der GraphPunkte
        yPos = new int[graphPunkte];
        double pInY = getHeight() / pMax;//Konstante zur Umrechnung von p-Wert auf Y-Wert
        for(int i = 0; i < graphPunkte; i++)
            yPos[i] = (int)(getHeight() - dichteFunktion(zWerte[i])* pInY);
        repaint();
    }

    public void setVarianz(double varianz)
    {
        this.varianz = varianz;
        //Initialisiere Array mit yPositionen der GraphPunkte
        yPos = new int[graphPunkte];
        double pInY = getHeight() / pMax;//Konstante zur Umrechnung von p-Wert auf Y-Wert
        for(int i = 0; i < graphPunkte; i++)
            yPos[i] = (int)(getHeight() - dichteFunktion(zWerte[i])* pInY);
        repaint();

    }

    public void aktualisiereMüAnzeige()
    {
        DecimalFormat form = new DecimalFormat("'  '0.0;-0.0");
        String müAnzeigeNeu = form.format(mü);
        ((JLabel)(getContentPane().getComponent(müLabelNumber))).setText(müAnzeigeNeu);
    }

    public void aktualisiereVarianzAnzeige()
    {
        DecimalFormat form = new DecimalFormat("'  '0.0");
        String varianzAnzeigeNeu = form.format(varianz);
        ((JLabel)getContentPane().getComponent(varianzLabelNumber)).setText(varianzAnzeigeNeu);
    }

     public double dichteFunktion(double x)
    {
        return
                Math.exp(- Math.pow(x - mü, 2) / (2 * varianz))
                / Math.sqrt(2 * Math.PI * varianz);
    }

    public class Koordinatensystem extends JPanel
    {
        public Koordinatensystem()
        {
            setBackground(Color.GREEN);
            setPreferredSize(new Dimension(appWidth, appHeight * 2/3));
        }

        @Override
        public void paintComponent(Graphics g)
        {
            super.paintComponent(g);
            g.setColor(Color.BLUE);
            g.drawPolyline(xPos, yPos, graphPunkte);
        }
    }

    public class müListener implements ChangeListener
    {
        public void stateChanged(ChangeEvent e)
        {
            double müNeu = ((JSlider)(e.getSource())).getValue();
            müNeu /= 10;
            setMü(müNeu);
            aktualisiereMüAnzeige();
        }
    }

        public class VarianzListener implements ChangeListener
    {
        public void stateChanged(ChangeEvent e)
        {
            double varianzNeu = ((JSlider)(e.getSource())).getValue();
            varianzNeu /= 10;
            setVarianz(varianzNeu);
            aktualisiereVarianzAnzeige();
        }
    }

}
```


----------



## parabool (28. Jan 2012)

musst noch das package angeben also:

```
code="normalverteilung.parametervariieren.class"
```

... und natürlich den korrekten Klassennamen (groß P)


----------



## L-ectron-X (28. Jan 2012)

Java ist case sensitiv. Du musst also den Klassennamen genauso im Applet-Tag angeben. 
FAQ: http://www.java-forum.org/applets/114668-java-applet-webseite-einbinden.html


----------



## Huitzlipochtli (28. Jan 2012)

Ok, Fortschritt : Hab jetzt ne neue Fehlermeldung  

Your browser sent a request that this server could not understand.
Size of a request header field exceeds server limit.
Cookie: ia=zjiyzMw5Dg7A3Zc015qW0BZAVkuJZl; c_delivered=s%3A4126%3A%22s%3A2101%3A1%22s%3A1084%3A1%5C%22s%3A572%3A%5C%5C%5C%5C1s%3A312%3A%5C%5C%5C%5C%5C%5C%5C%5C1s

Was soll mir das jetzt sagen ? Auf package und case hab ich diesmal geachtet.

Hmmm .... Nochmal einen neuen npage account erstellt, und jetzt lautet die Fehlermeldung wieder
Verwendung der JRE-Version 1.5.0_30-b03-389-9M3425 Java HotSpot(TM) Client VM

Liegts vielleicht echt an der Java-Version ?


Von L-ectron-X geschlossen, da ein weiteres Thema zum gleichen Problem vom TO geöffnet wurde. :noe:
Hier gehts weiter: http://www.java-forum.org/deployment/131017-applet-fehlermeldung.html#post857836


----------

