no such method error: main()

Lovecraft

Mitglied
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.

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);
		}
	}	
}
 
Ein Applet braucht nicht unbedingt eine main-Methode das ist schon richtig, die Frage ist ja: wie probierst du das Applet aufzurufen?
Code:
java ZeichneGraph
geht natürlich so nicht, du müsstest das wie so üblich in eine HTML Datei einbinden.

http://www.java-forum.org/applets/4482-verweigert-browser-anzeige-java-applets.html
Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 21 Applets

könnten dir evtl. helfen.

Dann entweder mit dem Browser oder dem Appletviewer die HTML-Datei starten.
Wenn du das aber alles schon so gemacht hast(du hättest dazu ruhig etwas schreiben können 😀 ) könntest du hier ja mal deine HTML-Datei posten.
So etwas wie:
HTML:
<applet code="ZeichneGraph.class" width="400" height="300"></applet>
müsste dort dann enthalten sein 🙂
 

Zurück
Oben