Hallo ich habe folgendes Problem....
wenn ich das Applet mit dem Browser ausführe, zeigt er mir nur einen grauen Kasten an....
Programm:
Applet:
Woran liegt denn das??
Danke....
wenn ich das Applet mit dem Browser ausführe, zeigt er mir nur einen grauen Kasten an....
Programm:
Java:
import java.applet.*;
import java.awt.*;
import java.util.*;
import java.lang.Double;
import java.text.*; //Paket das Klassen zur Behandlung von Texten, Daten, Nummern und Nachrichten beinhaltet
public class Histogram extends Applet
{
//Variablen und Arrays festlegen
int[] anzahlWerte;
double[] werte;
double maximum;
double minimum;
int k;
public void init()
{
setBackground(Color.yellow);
String s = getParameter("data"); // Liest die Applet-Parameter aus der HTML datei aus.
StringTokenizer st = new StringTokenizer(s);
//initialisiert den Tokenizer, zerlegt die Daten-Zeichenkette in ihre einzelnen Bestandteile (Durch Leerzeichen getrennt)
werte = new double[st.countTokens()];
//das Array "Werte" wird initialisiert, Größe wird über countTokens ermittelt und entspricht der Anzahl der Zahlen
for ( int i=0; i<werte.length; i++) //wird für jeden Wert, bis Länge des Arrays erreicht ist ausgeführt
werte[i] = Double.parseDouble(st.nextToken()); //"hüllklasse" hier wird der string in double umgewandelt und dann in das Array gespeichert
//parseDouble wandelt um, nextToken() springt zum Nächsten Token
maximum = werte[0]; //Anfangs Minimum und Maximum wird gesetzt, 0. Stelle des Arrays
minimum = werte[0];
for(int i=0; i<werte.length; i++) //for schleife, element für element durchgehen, variable für Min und max festlegen! Suche das Min und Max!
{
if (werte[i] > maximum)
maximum = werte[i];
if (werte[i] < minimum)
minimum = werte[i];
}
k=Integer.parseInt(getParameter("k")); //Intervallanzahl aus der html, mit getParameter k, ParseInt wandelt String in Int um
// Array für die Anzahl der Element im Intervall i
anzahlWerte = new int[k];
//neues Array mit der Länge k, also jede Stelle des Arrays ist ein Intervall?! AnzahlWerte= Werte im Intervall
double intervallbreite = (maximum-minimum)/k; //legt die einzelne Intervallbreite fest
for (int i = 0; i < werte.length; i++) //Jeder Datenwert wird duchgegangen
for (int j = 0; j < anzahlWerte.length; j++) //Für jedes Array
if ((((j+1)*intervallbreite)+minimum) > werte[i] && ((j*intervallbreite)+minimum) <= werte[i])
anzahlWerte[j]++; //Werte im Intervall wird einen hochgesetzt wenn obige Zeile erfüllt ist
}
//der Zeichenteil
public void paint(Graphics g)
{
int appletWidth = getWidth(); //dynamische Breite und Höhe
int appletHeight = getHeight();
int hoehe = (appletHeight-50); //Höhe der x & y _Achse, wieder dynamisch
int breite = (appletWidth-50);
g.drawLine(25, 25, 25, hoehe+25); //y-Achse zeichnen
g.drawLine(25, hoehe+25, breite+25, hoehe+25); //x-achse
int max_haeufigkeit=0;
for (int i = 0; i < anzahlWerte.length; i++) //Für alle Elemente eines Intervalls...
{
if (anzahlWerte[i] > max_haeufigkeit) //die max. auftretenden Häufigkeit für spätere max. balkenhöhe
max_haeufigkeit = anzahlWerte[i];
}
int maxbalkenhoehe = hoehe/max_haeufigkeit;
int balkenbreite = breite/k;
double intervallbreite = (maximum - minimum)/k ;
DecimalFormat df = new DecimalFormat("0.00"); //Formatiert in Dezimalzahlen
DecimalFormat prozent = new DecimalFormat("0%"); //und Prozentsatz
for (int i = 0; i < anzahlWerte.length; i++) //Zeichnet Rechtecke für jedes Intervall
{
int balkenhoehe = anzahlWerte[i]*maxbalkenhoehe; //relative Häufigkeit entspricht Balkenhöhe
g.drawString(""+df.format((i*intervallbreite)+minimum),25+i*balkenbreite, hoehe+40);
g.drawString((" "+prozent.format(anzahlWerte[i]/(double)werte.length)), 0, hoehe-balkenhoehe+25);
g.setColor(Color.red);
g.drawLine(25,hoehe-balkenhoehe+25,25+breite,hoehe-balkenhoehe+25);
g.setColor(Color.black);
g.drawRect((int)(25+i*balkenbreite),hoehe-balkenhoehe+25,(int)balkenbreite,balkenhoehe);
}
}
}
Applet:
Java:
<CENTER>
<APPLET code="Histogram.class" width=500 height=500>
<PARAM name=data value="4.37 3.87 4.00 4.03 3.50 4.08 2.25 4.70 1.73
4.93 1.73 4.62 3.43 4.25 1.68 3.92 3.68 3.10 4.03 1.77 4.08 1.75 3.20
1.85 4.62 1.97 4.50 3.92 4.35 2.33 3.83 1.88 4.60 1.80 4.73 1.77 4.57
1.85 3.52 4.00 3.70 3.72 4.25 3.58 3.80 3.77 3.75 2.50 4.50 4.10 3.70
3.80 3.43 4.00 2.27 4.40 4.05 4.25 3.33 2.00 4.33 2.93 4.58 1.90 3.58
3.73 3.73 1.82 4.63 3.50 4.00 3.67 1.67 4.60 1.67 4.00 1.80 4.42 1.90
4.63 2.93 3.50 1.97 4.28 1.83 4.13 1.83 4.65 4.20 3.93 4.33 1.83 4.53
2.03 4.18 4.43 4.07 4.13 3.95 4.10 2.27 4.58 1.90 4.50 1.95 4.83 4.12 ">
<PARAM name=k value=10>
<PARAM name=title value="Histogram">
</APPLET>
</CENTER>
Woran liegt denn das??
Danke....