habe mal ein ganz simples Applet gezeichnet, doch als ich anstatt Applet importierte, JApplet benuzte, funktionierte das Applet nich so wie ich will.?? benutzt man den JApplet für Applets? und wieso funktionierte es nicht..
Das Applet bewegt einen einfachen Ball nach rechts..
Code:
import java.applet.*;
import java.awt.*;
public class Ballbewegung1 extends [color=red](J)[/color]Applet implements Runnable
{
// Initialisierung der Variablen
int x_pos = 10; // x - Position des Balles
int y_pos = 100; // y - Position des Balles
int radius = 20; // Radius des Balles
public void init()
{
setBackground (Color.blue);
}
public void start ()
{
// Schaffen eines neuen Threads, in dem das Spiel läuft
Thread th = new Thread (this);
// Starten des Threads
th.start ();
}
public void stop()
{
}
public void destroy()
{
}
public void run ()
{
// Erniedrigen der ThreadPriority um zeichnen zu erleichtern
Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
// Solange true ist läuft der Thread weiter
while (true)
{
// Verändern der x- Koordinate
x_pos ++;
// Neuzeichnen des Applets
repaint();
try
{
// Stoppen des Threads für in Klammern angegebene Millisekunden
Thread.sleep (20);
}
catch (InterruptedException ex)
{
// do nothing
}
// Zurücksetzen der ThreadPriority auf Maximalwert
Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
}
}
public void paint (Graphics g)
{
g.setColor (Color.red);
g.fillOval (x_pos - radius, y_pos - radius, 2 * radius, 2 * radius);
}
}
als ich das Applet dann mit Applet also AWT benutzte ging es aus der IDE eclipse heraus, mit dem Browser leider nicht...??
..ja ich weiß schin das ich die nicht mischen soll/kann, aber meine Frage war ob ich diesen Code auch mit JApplet benutzen kann?? .. wenn ja: warum zeichnet er den Ball nicht,, wenn nein: für was gibts dann JApplet, bzw. was habe ich im Code was nicht zu JApplet passt?
2. in eclipse geht es ja wenn ich das Applet starte, warum denn nicht mit dem appletviewer?? was für einen Fehler habe ich im code??... Den Artikel http://www.java-forum.org/de/viewtopic.php?t=4936 hab ich ja gelesen, danach soll das problem im code liegen... folgende Fehlermeldung habe ich bekommen:
Code:
java.lang.UnsupportedClassVersionError: EinfscherBall (Unsupported major.minor v
ersion 49.0)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:502)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
3)
at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:156)
at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:122)
at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:555)
at sun.applet.AppletPanel.createApplet(AppletPanel.java:567)
at sun.applet.AppletPanel.runLoader(AppletPanel.java:496)
at sun.applet.AppletPanel.run(AppletPanel.java:293)
at java.lang.Thread.run(Thread.java:536)
Du versuchst hier eine Klasse (EinfscherBall.class), die mit Java 1.5 kompiliert wurde mit einer früheren JRE-Version auszuführen.
Kompiliere mal die Klasse mit der Version, auf der sie ausgeführt werden soll.
ich habe in eclipse java 1.5 eingestellt als SDK und als JRE habe ich den Pfad innerhalb des Jsdk also jre, richtig eingestellt. Auch die Umgebungsvariablen sind auf die version 1.5 eingestellt..
mit eclipse funktioniert das Applet immer.. einfach Run As ..Applet....
aber vin der Konsole.. kommt nun folgende Meldung: nach appletviewer applet.html
Code:
java.lang.NoClassDefFoundError: EinfscherBall (wrong name: ball1/EinfscherBall)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:1
4)
at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:162)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:118)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:577)
at sun.applet.AppletPanel.createApplet(AppletPanel.java:710)
at sun.applet.AppletPanel.runLoader(AppletPanel.java:639)
at sun.applet.AppletPanel.run(AppletPanel.java:319)
at java.lang.Thread.run(Thread.java:595)
ich weiß sonst gerade echt nicht weiter.. achja ich benutzte den Firefox Browser..hmm Internet Explorer..ging ja auch nicht..
.. also nach langem :### hab ich nun endlich das Problem gefunden.. doch was ist die Lösung dazu..
ich hab ja das Applet, also die Klasse, in einem package, deshalb gings nicht.. im default package gehts... aber wieso..
die Klasse ist im gleichen Ordner wie die Html Seite, und kompilieren kann ich die Klasse auch per Konsole..
was muss ich den genau ändern, dass es mit package läuft?
ja super.. hat geklappt... jetzt habe ich aber eine nächste Frage..
ich will das Applet in einem JFrame laufen lassen, also als Applikation.... der Code sieht folgendermaßen aus:
Code:
public class EinBallJFrame extends JFrame {
public EinBallJFrame(){
setSize(400,400);
EinBall applBall = new EinBall();
add(applBall);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
es erscheint nur ein Bild, der Ball bewegt sich aber nicht... wieso?