Klasse kann nicht instanziiert werden
Ich habe ein problem mit java-applet und graphics. Ich versuche es im Eclipse und es funktioniert nicht.
Im neu in java und ich hoffe, Sie können mir helfen.
Ich habe zwei Dateien: Say.java und SayWhat.java.
Say.java:
public class Say {
SayWhat word = new SayWhat("Hello World");
}
SayWhat.java:
import java.applet.Applet;
import java.awt.Graphics;
@SuppressWarnings("serial")
public class SayWhat extends Applet {
Graphics g;
String what;
public SayWhat(String what) {
this.what=what;
}
public void paint(Graphics g){
g.drawString(what, 20, 20);
}
}
Fehlermeldung, die angezeigt wird ist:
load: SayWhat.class can't be instantiated.
java.lang.InstantiationException: SayWhat
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at sun.applet.AppletPanel.createApplet(Unknown Source)
at sun.applet.AppletPanel.runLoader(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Können Sie mir bitte sagen, was ich falsch mache?
es ist ein Duplikat von diese Frage
1) ich habe ein problem mit java-applet und graphics"* Erfahrene Entwickler haben Probleme mit applets, aber.. "ich bin neu in java" ..das ist ein Rezept für eine Katastrophe. Warum sind Sie der Codierung ein applet eher als einen Rahmen? 2) Warum verwenden
1) ich habe ein problem mit java-applet und graphics"* Erfahrene Entwickler haben Probleme mit applets, aber.. "ich bin neu in java" ..das ist ein Rezept für eine Katastrophe. Warum sind Sie der Codierung ein applet eher als einen Rahmen? 2) Warum verwenden
Applet
eher als JApplet
? AWT-Komponenten (Applet
) sind fast überflüssig.InformationsquelleAutor user1168085 | 2012-01-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Applet muss eine public no-arg-Konstruktor (entweder durch eine explizite public no-arg-Konstruktor, oder durch keine explizite Konstruktoren überhaupt; im letzteren Fall wird der compiler mit der Lieferung eines public no-arg-Konstruktor als ein Standard). Ihre Klasse die einzige Konstruktor hat ein argument:
also die Klasse kann nicht instanziiert werden, ohne dass ein Streit, so kann es nicht verwendet werden, da ein applet.
Man kann Sie als eine "input-parameter"; siehe docs.oracle.com/javase/tutorial/deployment/applet/param.html.
hmm, gibt es keine alternative Lösungen? vielleicht leichter ein.
Die Lösung, die kompliziert erscheinen mag auf den ersten Blick, aber wenn Sie Lesen, durch die Seite, du wirst sehen, dass es eigentlich ganz einfach ist. Die Seite erwähnt viele Dinge, die man kann zu tun, aber sehr wenige von Ihnen sind tatsächlich erforderlich. Ach, übrigens, finden Sie unter people.cs.uchicago.edu/~amr/121/labs/eclipsetute/applet.html, um Anweisungen auf die übergabe-parameter von Eclipse.
InformationsquelleAutor ruakh
Klasse
SayWhat
sollte einen public-Konstruktor ohne Argumente.InformationsquelleAutor t_motooka
Überprüfen Sie die Dokumentation für java.lang.InstantiationException
Gibt es zwei mögliche Ursachen:
1) Sowohl code als auch object-Attribute angegeben werden, die in den tag:
Die Sun JRE zugreifen kann entweder der code oder das Objekt, Attribut, aber nicht beide.
2) Ein code-Attribut im-tag angegeben ist, und ein Objekt-Attribut angegeben ist, in einem tag :
BEARBEITEN: Fügen Sie eine default-Konstruktor, wie folgt:
Sie müssen beide Konstruktoren.
InformationsquelleAutor bchetty