Applet besitzt keinen öffentlichen Konstruktor

Status
Nicht offen für weitere Antworten.

Reality

Top Contributor
Hi,
ich habe gerade ein Spiele-Tutorial kompiliert und da wollte ich auch mal ein paar Sterne hinzufügen.
Wenn die Anzahl der Sterne bei x<=125 bleibt, kommt diese Fehlermeldung nicht und die Sterne werden auch gezeichnet, aber wenn ich die Anzahl auf 130 erhöhe, kommt die oben genannte Fehlermeldung.

Applet Main besitzt keinen öffentlichen Konstruktor Main()

Hier der Code:
Code:
import java.awt.*;
import java.util.*;

public class Stars {
  int posX[] = new int[130];
  int posY[] = new int[130];
  
  Stars(){
    Random r = new Random();
    for(byte i = 0; i<posX.length; i++){
      posX[i] = r.nextInt(400);
      posY[i] = r.nextInt(300);
    }
  }
  
  public void drawStars(Graphics g){
    g.setColor(Color.white);
    
    for(byte i = 0; i<posX.length; i++)
    g.fillOval(posX[i], posY[i], 1, 1);
  }
}

Code:
import java.applet.*;
import java.awt.*;

public class Main extends Applet implements Runnable
{
        // variables
        private Thread th;
        private Player player;
        private Shot [] shots;

        // speed constants
        private final int shotSpeed = -2;
        private final int playerLeftSpeed = -2;
        private final int playerRightSpeed = 2;

        // move flags
        private boolean playerMoveLeft;
        private boolean playerMoveRight;
        private Stars stars = new Stars();
        
        // double buffering
        private Image dbImage;
        private Graphics dbg;

        public void init()
        {
                setBackground (Color.black);
                player = new Player(150, 280);
                shots = new Shot[5];
                
        }

        public void start ()
        {
                th = new Thread(this);
                th.start ();
        }

        public void stop()
        {
                th.stop();
        }

        public void destroy()
        {
                th.stop();
        }

        public void run ()
        {
                Thread.currentThread().setPriority(Thread.MIN_PRIORITY);

                while (true)
                {
                        // do operations on shots in shots array
                        for(int i=0; i<shots.length; i++)
                        {
                                if(shots[i] != null)
                                {
                                        // move shot
                                        shots[i].moveShot(shotSpeed);

                                        // test if shot is out
                                        if(shots[i].getYPos() < 0)
                                        {
                                                // remove shot from array
                                                shots[i] = null;
                                        }

                                        // other operations
                                        // ...
                                        // test for collisions with enemies
                                        // ...
                                }
                        }


                        // move player
                        if(playerMoveLeft)
                        {
                                player.moveX(playerLeftSpeed);
                        }
                        else if(playerMoveRight)
                        {
                                player.moveX(playerRightSpeed);
                        }

                        // repaint applet
                        repaint();

                        try
                        {
                                Thread.sleep(10);
                        }
                        catch (InterruptedException ex)
                        {
                                // do nothing
                        }

                        Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
                }
        }

        public boolean keyDown(Event e, int key)
        {
                if(key == Event.LEFT)
                {
                        playerMoveLeft = true;
                }
                else if(key == Event.RIGHT)
                {
                        playerMoveRight = true;
                }
                else if(key == 32)
                {
                        // generate new shot and add it to shots array
                        for(int i=0; i<shots.length; i++)
                        {
                                if(shots[i] == null)
                                {
                                        shots[i] = player.generateShot();
                                        break;
                                }
                        }
                }

                return true;
        }

        public boolean keyUp(Event e, int key)
        {
                if(key == Event.LEFT)
                {
                        playerMoveLeft = false;
                }
                else if(key == Event.RIGHT)
                {
                        playerMoveRight = false;
                }

                return true;
        }


        public void update (Graphics g)
        {
                if (dbImage == null)
                {
                        dbImage = createImage (this.getSize().width, this.getSize().height);
                        dbg = dbImage.getGraphics ();
                }

                dbg.setColor (getBackground ());
                dbg.fillRect (0, 0, this.getSize().width, this.getSize().height);

                dbg.setColor (getForeground());
                paint (dbg);

                g.drawImage (dbImage, 0, 0, this);
        }

        public void paint (Graphics g)
        {
                // draw player
                player.drawPlayer(g);
                stars.drawStars(g);
                
                // draw shots
                for(int i=0; i<shots.length; i++)
                {
                        if(shots[i] != null)
                        {
                                shots[i].drawShot(g);
                        }
                }
        }
}

Liebe Grüße
Reality
 

Illuvatar

Top Contributor
Mein Compiler gibt 4 Fehler und 5 Warnungen aus. Die Fehler stammen aber daher, dass ich die Klassen Shot und Player nicht habe (je 2 Fehler). Ich kann das Problem also nicht ganz nachvollziehen. ???:L

Außerdem:
Thread#stop ist deprecated
Component#keyUp ist deprecated
Component#keyDown ist deprecated
Serializable Class Main has no definition of serialVersionUID.
 

Reality

Top Contributor
Hi,
ich weiss, dass die von dir genannten Methoden deprecated sind, aber ich hatte keine Lust nach dem copy und paste die Methoden umzuschreiben. Es erfüllt schließlich seinen Zweck.
Das du es kompilieren wolltest, wusste ich nicht.
Hier der restliche Code:

Code:
import java.awt.Graphics;
import java.awt.Color;

public class Shot
{
	private int x_pos;
	private int y_pos;

	private final int radius = 3;

	public Shot(int x, int y)
	{
		x_pos = x;
		y_pos = y;
	}

	public int getYPos()
	{
		return y_pos;
	}

	public void moveShot(int speed)
	{
		y_pos += speed;
	}

	public void drawShot(Graphics g)
	{
		g.setColor(Color.yellow);
		g.fillOval(x_pos, y_pos, radius, radius);
	}
}

Code:
import java.awt.Graphics;
import java.awt.Color;

public class Player
{
	// Variables
	private int x_pos;
	private int y_pos;

	public Player(int x, int y)
	{
		x_pos = x;
		y_pos = y;
	}

	public void moveX(int speed)
	{
		x_pos += speed;
	}

	public Shot generateShot()
	{
		Shot shot = new Shot(x_pos, y_pos);

		return shot;
	}

	public void drawPlayer(Graphics g)
	{
		g.setColor(Color.red);
		int [] x_poly = {x_pos, x_pos - 10, x_pos, x_pos + 10};
		int [] y_poly = {y_pos, y_pos + 15, y_pos + 10, y_pos + 15};
		g.fillPolygon(x_poly, y_poly, 4);
	}
}

Liebe Grüße
Reality
 

Illuvatar

Top Contributor
Also kompilieren tuts bei mir bestens (JDK5 RC).
Es gibt nur einen Laufzeitfehler, der allerdings auch genau dadurch verursacht wird.
Code:
 int posX[] = new int[130]; 
  int posY[] = new int[130]; 
  
  Stars(){ 
    Random r = new Random(); 
    for(byte i = 0; i<posX.length; i++){ 
      posX[i] = r.nextInt(400); 
      posY[i] = r.nextInt(300); 
    } 
  }
Wem fällt was auf? Byte i wird bis 130 gezählt, das gibt nen Überlauf, das gibt ne ArrayIndexOutOfBoundsException (-128).
Verändert man byte in beiden Schleifen in short/int/long, lässt sich das Programm bei mir problemlos starten und ich kann gelbe Kügelchen verschießen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Applet: com.sun.deploy.security.BlockedException :-( Tools - Maven, Gradle, Ant & mehr 0
M Applet Applet legt Browser lahm Tools - Maven, Gradle, Ant & mehr 3
J Applet Aus anderer Browserinstanz Applet abfragen Tools - Maven, Gradle, Ant & mehr 2
P Linux Applet/Webstart Schriftunterschiede Tools - Maven, Gradle, Ant & mehr 3
E JMol -Applet Einbindung Tools - Maven, Gradle, Ant & mehr 0
T Applet Applet und IText wirft Incompatible magic value 1008813135 Fehler Tools - Maven, Gradle, Ant & mehr 6
P Applet Java Applet läuft im Browser nicht mehr (HTTPClient - NoClassDefFoundError) Tools - Maven, Gradle, Ant & mehr 3
P Applet Applet Signatur auf Server mit SSL-Zertifikat? Tools - Maven, Gradle, Ant & mehr 7
H Applet Applet wird nicht angezeigt Tools - Maven, Gradle, Ant & mehr 2
M Applet Applet funktioniert in Google Chrome nicht Tools - Maven, Gradle, Ant & mehr 2
O Applet "Anwendung kann nicht ausgeführt werden" Tools - Maven, Gradle, Ant & mehr 6
Q Applet Fehlermeldung bei Applet-Wechsel Tools - Maven, Gradle, Ant & mehr 4
T Daten per POST-Methode aus Java-Applet nach php-Script senden Tools - Maven, Gradle, Ant & mehr 3
R Applet friert Adresszeile des Firefox ein Tools - Maven, Gradle, Ant & mehr 2
K Applet als Jar-Datei in HTML einbinden Tools - Maven, Gradle, Ant & mehr 14
H Applet-Fehlermeldung Tools - Maven, Gradle, Ant & mehr 10
H Applet läuft nicht im Browser Tools - Maven, Gradle, Ant & mehr 3
Q Applet Applet läuft nicht im Browser Tools - Maven, Gradle, Ant & mehr 14
J Applet URL mittels TTS als Applet lesen lassen Tools - Maven, Gradle, Ant & mehr 40
F Applet verwischt, wenn Seite gescrollt wird Tools - Maven, Gradle, Ant & mehr 16
S Applet Applet mit C# öffnen: java.lang.SecurityException: Permission denied (WinXP) Tools - Maven, Gradle, Ant & mehr 8
J Applet-Quellcode einsehen Tools - Maven, Gradle, Ant & mehr 6
E Applet Applet und Datenbank Konzept Tools - Maven, Gradle, Ant & mehr 4
A Applet: Html Datei und Class Datei nicht im selben Verzeichnis Tools - Maven, Gradle, Ant & mehr 2
S Applet soll Textdatei von fremdem Server öffnen Tools - Maven, Gradle, Ant & mehr 8
E Java Applet bearbeiten Tools - Maven, Gradle, Ant & mehr 8
Quasar Wie signiere ich mein Applet richtig? Tools - Maven, Gradle, Ant & mehr 6
M mit Applet Javascript Aufrufen Tools - Maven, Gradle, Ant & mehr 2
S Applet and stop() method und gui blocked Tools - Maven, Gradle, Ant & mehr 4
A Applet Applet startet nach Einbinden auf Website nicht Tools - Maven, Gradle, Ant & mehr 4
A Applet, xxx.jar und hsqldb Tools - Maven, Gradle, Ant & mehr 4
T Webstart oder Applet Tools - Maven, Gradle, Ant & mehr 2
H Applet applet neu laden im browser Tools - Maven, Gradle, Ant & mehr 10
M Applet neustart Tools - Maven, Gradle, Ant & mehr 5
S Applet request unter Linux Tools - Maven, Gradle, Ant & mehr 14
S Applet GUI nicht im Webbrowser sichtbar Tools - Maven, Gradle, Ant & mehr 5
S Mittel Applet Datei an ein Webserver übertragen Tools - Maven, Gradle, Ant & mehr 2
M Applet in ClientServer J2EE Anwendung debugen Tools - Maven, Gradle, Ant & mehr 6
H Java Applet Problem beim einbinden in HTML Tools - Maven, Gradle, Ant & mehr 3
M Java3D Applet flackert wenn ein Button(HTML) gedrückt wird Tools - Maven, Gradle, Ant & mehr 11
S Policy mit Signiertem Applet verteilen Tools - Maven, Gradle, Ant & mehr 9
F Applet findet include nicht Tools - Maven, Gradle, Ant & mehr 15
L PHP + Java Applet Kommunikation Tools - Maven, Gradle, Ant & mehr 9
C Probleme mit Applet mit SQL im Browser Tools - Maven, Gradle, Ant & mehr 4
G Java-Applet Probleme beim Browser Tools - Maven, Gradle, Ant & mehr 14
G Textfile in Applet laden möglich? Tools - Maven, Gradle, Ant & mehr 2
A Java-Applet Sandbox deaktiviren? Tools - Maven, Gradle, Ant & mehr 2
B Java-Applet geht nicht (auf dem Webserver) Tools - Maven, Gradle, Ant & mehr 9
P Applet läuft nicht in Browser Tools - Maven, Gradle, Ant & mehr 21
V JAR-Datei eines (J)Applet funktioniert nicht - Help! Tools - Maven, Gradle, Ant & mehr 19
S Java Applet per Klick starten? Tools - Maven, Gradle, Ant & mehr 6
S Applet geht nicht Tools - Maven, Gradle, Ant & mehr 25
J Applet signieren Tools - Maven, Gradle, Ant & mehr 2
H Applet - Geschicklichkeitsspiel programmieren Tools - Maven, Gradle, Ant & mehr 16
U Jar funktioniert nicht als Applet Tools - Maven, Gradle, Ant & mehr 3
C Applet Frage Tools - Maven, Gradle, Ant & mehr 4
M Java Applet - enforce use of older JRE Tools - Maven, Gradle, Ant & mehr 3
N Wie Java-Programm zu Applet machen?! Tools - Maven, Gradle, Ant & mehr 2
W Webseite aus Applet öffnen Tools - Maven, Gradle, Ant & mehr 3
lumo Applet - resize Tools - Maven, Gradle, Ant & mehr 7
Icewind Applet reagiert nach neu laden der Webseite nicht mehr verlässlich auf KeyEvents Tools - Maven, Gradle, Ant & mehr 6
R Applet mit MySQL Tools - Maven, Gradle, Ant & mehr 3
A jar datei trotz zertifikat nich aus applet ausführbar Tools - Maven, Gradle, Ant & mehr 4
F Fehlende Applet Rechte Tools - Maven, Gradle, Ant & mehr 12
N [Applet] Button wir nach 5 secs Unsichtbar Tools - Maven, Gradle, Ant & mehr 2
N jar -> applet wie setzt man das am leichtesten um Tools - Maven, Gradle, Ant & mehr 7
V applet Java 1.6 -> 1.5 Problem ... wie mit Ant zu lösen? Tools - Maven, Gradle, Ant & mehr 7
F applet als JAR -> AccessControlException Tools - Maven, Gradle, Ant & mehr 3
grudge File in Applet laden Tools - Maven, Gradle, Ant & mehr 4
E Java Applet - Double Buffering Problem (Flackern) Tools - Maven, Gradle, Ant & mehr 6
R Applet mit bestimmter JRE ausführen Tools - Maven, Gradle, Ant & mehr 9
traysa Wie binde ich ein applet in eine jsp Tools - Maven, Gradle, Ant & mehr 3
D Mit dem Applet das DOM manipulieren? Tools - Maven, Gradle, Ant & mehr 3
ABstraCT Applet getCodeBase() Zugriff auf darüberliegendenden Ordner ? Tools - Maven, Gradle, Ant & mehr 1
S Java-Applet Steuerung IO Karte am Drucker-Port Tools - Maven, Gradle, Ant & mehr 4
P URL aus Applet öffnen? Tools - Maven, Gradle, Ant & mehr 7
ABstraCT Mit Applet in ne Datei auf seinem Server schreiben. Tools - Maven, Gradle, Ant & mehr 10
E Verzögerung beim Refresh (F5) mit einem Applet verursachen Tools - Maven, Gradle, Ant & mehr 16
deetee Applet Frage Tools - Maven, Gradle, Ant & mehr 2
S Fehler in einem Upload - Applet (nicht gelöst!!) Tools - Maven, Gradle, Ant & mehr 2
G Variable an zweites Applet übergeben Tools - Maven, Gradle, Ant & mehr 3
M Dringend: Sehr kompliziertes Applet Problem Tools - Maven, Gradle, Ant & mehr 4
O Javascript kommuniziert mit Applet? Tools - Maven, Gradle, Ant & mehr 2
H Spracherkennung mit Applet / Policy bzw. Security Fehler Tools - Maven, Gradle, Ant & mehr 2
zilti Nerviger Hinweis bei Applet- und WS-Fenstern - wieso? Tools - Maven, Gradle, Ant & mehr 3
S Datei-/Verzeichniszugriff von signiertem Applet Tools - Maven, Gradle, Ant & mehr 6
G Signiertes Applet installieren? Tools - Maven, Gradle, Ant & mehr 3
G Applet mit Parameter aus JavaScript Tools - Maven, Gradle, Ant & mehr 5
A Applet Maus Koordinaten ohne MouseMotionListener Tools - Maven, Gradle, Ant & mehr 3
K Applet in Eclipse funktioniert, im Browser nicht Tools - Maven, Gradle, Ant & mehr 7
T Applet soll Java Programm starten Tools - Maven, Gradle, Ant & mehr 2
S Applet pai.nt? Tools - Maven, Gradle, Ant & mehr 3
S Applet und File-Object? Tools - Maven, Gradle, Ant & mehr 9
T Applet soll Datei lesen (darf es aber nicht.) Tools - Maven, Gradle, Ant & mehr 3
P Java-Applet funktioniert unter WINXP nicht Tools - Maven, Gradle, Ant & mehr 2
N Java 1.6 Applet auf älteren Versionen ausführbar? Tools - Maven, Gradle, Ant & mehr 4
G Signiertes Applet prüfen? Tools - Maven, Gradle, Ant & mehr 3
H Problem mit einen Applet Tools - Maven, Gradle, Ant & mehr 5
J Java Applet bei mouseover mit Tooltip Tools - Maven, Gradle, Ant & mehr 3
G Applet Security Problem Tools - Maven, Gradle, Ant & mehr 3

Ähnliche Java Themen

Neue Themen


Oben