Objekt konstruktor wird nicht aufgerufen

  • Themenstarter Themenstarter _java_freak_
  • Beginndatum Beginndatum
J

_java_freak_

Gast
Hi
ich will ein spiel programmieren dazu benötige ich ein paar kästchen die man später zerstören kann diese will ich in einer eigenen klasse erzeugen leider funktionirt diese klasse nicht.
Meine hauptklasse(ohne den teil zum erzeugen des fensters):
Java:
import java.awt.*;
import java.awt.event.*;
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
import javax.swing.*;

public class spiel extends Thread
{
  static window win;
  static Graphics2D g2d;
  static int posx=300, posy=10;
  static int level=1;
  public static gegner g;
  
  public static void main(String[] args)
  {
    new spiel();//fenster wird erzeugt
    
    g=new g(posx, posy, level, g2d);
  }
Die zweite klasse:
Java:
class gegner
{
  int posx, posy;
  boolean[] lebt=new boolean[100];
  int level;
  Graphics2D g2d;
  
  public gegner(int x, int y, int levell, Graphics2D g2)
  {
    posx=x;
    posy=y;
    level=levell;
    g2d=g2;
    lebtReset();
    
    g2d.drawRect(100,200,100,100);//zum testen ob er dorthin kommt
    
    if(level==1)
    {
      level1();
    }
  }
  
  public void level1()
  {
    for(int a=0;a<=9;++a)
    {
      for(int i=0;i<=9;++i)
      {
        if( lebt[ (a*10) +i] )
        {
          g2d.drawRect(posx+ (40*i), (posy+ (40*a) ), 30, 30);
        }
      }
    }
  }
  
  public void lebtReset()
  {
    for(int i=0;i<=99;++i)
    {
      lebt[i]=true;
      g2d.drawString("hallo", 100, 100);//zum testen ob er dorthin kommt
    }
  }
}
Nach dem ausführen sollten eig 100 kästchen erscheinen in einem quadrat angeordnet sind.
 
nur die Variable heißt g, die Klasse doch nicht, also nicht new g()

oder würdest du ein spiel-Objekt mit
> spiel s = new s();
erzeugen?

Klassen übrigens besser groß schreiben

g2d wird als null an gegner übergeben, da fliegen bald die Exceptions,
besser nur in paintComponent von JPanel malen


Galileo Computing :: Java ist auch eine Insel – 20 Grafikprogrammierung
http://www.java-forum.org/spiele-multimedia-programmierung/54795-quaxli-2d-spiele-tutorial.html

------

> Nach dem ausführen sollten eig 100 kästchen erscheinen

bisher hast du überhaupt noch kein JFrame oder sonstige graphische Oberfläche,
window vielleicht..,
der spiel-Konstruktor macht vielleicht noch einiges, falls weggelassen, setzt dann mglw. auch g2d
 
also Konzentration auf die Konstruktor-Frage, was genau hast du geändert?
hoffentlich nicht mein Fehler-Beispiel new s() eingebaut

Java:
g=new gegner(posx, posy, level, g2d);
funktioniert nicht?
hmm, da sehe ich nichts, gibts eine Fehlermeldung die weiterhelfen könnte?
 
@ARadauer
Java:
 new spiel();//fenster wird erzeugt
wird bestimmt irgendwas machen
 
@ARadauer
Java:
 new spiel();//fenster wird erzeugt
wird bestimmt irgendwas machen
Hier der code von spiel()
Java:
public spiel()
  {
    win = new window();
    win.addMouseListener(new maus());//kommt später
  }
  
  public static class maus implements MouseListener
  {
    public void mouseClicked(MouseEvent e)
    {
    }
    public void mousePressed(MouseEvent e)
    {

    }
    public void mouseExited(MouseEvent e)
    {

    }
    public void mouseEntered(MouseEvent e)
    {

    }
    public void mouseReleased(MouseEvent e)
    {

    }

  }


  static class window extends Frame
  {
    public window()
    {
      addWindowListener(new WindowAdapter()
      {
        public void windowClosing(WindowEvent evt)
        {
            dispose();
        }
      });
      setSize(900, 500);
      setVisible(true);
      setResizable(false);
    }
 
ohh mir fällt grad auf das ich nicht den ganzen code von window gepostet hab
Hier noch mal window:
Java:
static class window extends Frame
  {
    public window()
    {
      addWindowListener(new WindowAdapter()
      {
        public void windowClosing(WindowEvent evt)
        {
            dispose();
        }
      });
      setSize(900, 500);
      setVisible(true);
      setResizable(false);
    }

    public void paint(Graphics g)
    {
      g2d = (Graphics2D) g;
    }
  }
 
macht anscheinend nicht genug zu den damaligen Überlegungen,
aber egal, besteht aktuell überhaupt (noch) eine Frage von deiner Seite?

undeutliche Postings zu Nebenthemen, eine ständiges Dilemma 😉
 
Antworten wurden gegeben,
wenn du darauf nicht reagierst werden sie weder wiederholt noch modifiziert
(und nein, die Klassen spiel + window haben damit derzeit wenig zu tun)
 

Zurück
Oben