Ich habe begonnen, mich mit der Vererbung auseinanderzusetzen.
Nun ist es so, dass ich ein Programm habe, welches eigentlich ausgeführt werden sollte.
Es soll ein Applet erscheinen, auf der eine Funktion dritten Grades angezeigt wird, wobei die Koeffizienten per Schieber eingestellt werden sollen.
Kompilieren tut er's - wenn ich es aber ausführen will, dann erscheint die Fehlaermeldung "no such method error: main()". Das Problem ist, dass ich keine Ahnung habe, warm das Programm überhaupt eine Mainmethode bracht. Ich habe - gerade mit Scrollbars - schon programme ohne main-Methode geschrieben, da ging das.
Nun ist es so, dass ich ein Programm habe, welches eigentlich ausgeführt werden sollte.
Es soll ein Applet erscheinen, auf der eine Funktion dritten Grades angezeigt wird, wobei die Koeffizienten per Schieber eingestellt werden sollen.
Kompilieren tut er's - wenn ich es aber ausführen will, dann erscheint die Fehlaermeldung "no such method error: main()". Das Problem ist, dass ich keine Ahnung habe, warm das Programm überhaupt eine Mainmethode bracht. Ich habe - gerade mit Scrollbars - schon programme ohne main-Methode geschrieben, da ging das.
Java:
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
public class ZeichneGraph extends Applet implements AdjustmentListener{
private Graph meinGraph;
private Scrollbar aScrollbar, bScrollbar, cScrollbar, dScrollbar;
public void init(){
meinGraph= new Graph();
Label aLabel = new Label("a: ");
add(aLabel);
Label bLabel = new Label("b: ");
add(bLabel);
Label cLabel = new Label("c: ");
add(cLabel);
Label dLabel = new Label("d: ");
add(dLabel);
aScrollbar = new Scrollbar(Scrollbar.HORIZONTAL, 50, 10, 0, 100);
add(aScrollbar);
aScrollbar.addAdjustmentListener(this);
bScrollbar= new Scrollbar(Scrollbar.HORIZONTAL, 50, 10, 0, 100);
add(bScrollbar);
bScrollbar.addAdjustmentListener(this);
cScrollbar = new Scrollbar(Scrollbar.HORIZONTAL, 50, 10, 0, 100);
add(cScrollbar);
cScrollbar.addAdjustmentListener(this);
dScrollbar = new Scrollbar(Scrollbar.HORIZONTAL, 50, 10, 0, 100);
add(dScrollbar);
dScrollbar.addAdjustmentListener(this);}
public void adjustmentValueChanged(AdjustmentEvent event){
int aWert=aScrollbar.getValue();
int bWert=bScrollbar.getValue();
int cWert=cScrollbar.getValue();
int dWert=dScrollbar.getValue();
meinGraph.setzeParameter(aWert, bWert, cWert, dWert);
repaint();}
public void paint(Graphics g){
meinGraph.draw(g);
}
}
class Graph extends ZeichneGraph {
private final int xPixelAnfang=10,
xPixelEnde=410,
xOrigin=215;
private final int yPixelAnfang=10,
yPixelEnde=410,
yOrigin=215;
private final float xAnfang=-5.0f, xEnde=5.0f;
private final float yAnfang=-5.0f,
yEnde =5.0f;
private final float skaliereWert=(xPixelEnde-xPixelAnfang)/(xEnde-xAnfang);
private float a, b, c, d;
private float dieFunktion(float x, float a, float b, float c, float d){return a*x*x*x+b*x*x+c*x+d;}
private float skaliereX(int xPixel) {float wert= (xPixel-xOrigin)/skaliereWert; return wert;}
private int skaliereY(float y){int pixelKoord; pixelKoord=Math.round(-y*skaliereWert)+yOrigin; return pixelKoord;}
public void setzeParameter
(int aWert, int bWert, int cWert, int dWert){
a = skaliere(aWert);
b = skaliere(bWert);
c = skaliere(cWert);
d = skaliere(dWert);
}
private float skaliere(int koeffizient){
return ((koeffizient - 50)/10.0f);
}
public void draw(Graphics g){
float x, y, naechsteXKoord, naechsteYKoord;
int xPixel, yPixel, naechsteXKoordPixel, naechsteYKoordPixel;
g.drawString("a= " +a+ "b= "+b+"c= "+c+"d= "+d, 30, 60);
for(xPixel=xPixelAnfang; xPixel<xPixelEnde;xPixel++)
{
x=skaliereX(xPixel);
y=dieFunktion(x, a, b, c, d);
yPixel=skaliereY(y);
naechsteXKoordPixel=xPixel+1;
naechsteXKoord=skaliereX(naechsteXKoordPixel);
naechsteYKoord=dieFunktion(naechsteXKoord, a, b, c, d);
naechsteYKoordPixel=skaliereY(naechsteYKoord);
g.drawLine(xPixel, yPixel, naechsteXKoordPixel, naechsteYKoordPixel);
}
}
}