Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Java » Anfängerproblemm mit Classen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
20.05.2004, 12:11 Uhr
~Salfador12
Gast


Hallo zusammen

ich erst vor kurzen angefangen mit Java und spiele bisschen mit den Klassen rum. Folgendes Problem habe ich

im meine Superclasse habe ich volgende initialisation


C++:
public void init() {
      
        setLayout(new BorderLayout());
        Panel grid = new Panel();
        grid.setLayout(new GridLayout(0, 2));
        
        add("Center", grid);
      
        myFeldCanvas = new FeldCanvas();
        grid.add(myFeldCanvas);
        myScoreCanvas = new ScoreCanvas();
        grid.add(myScoreCanvas);


die Canvas sieht so aus:


C++:
class FeldCanvas extends Canvas implements ImageObserver{
    public static final int BalkenBreite = 8;
    public static final Color BalkenFarbe = Color.blue;
    protected block FallingShape = null;
    
    
    public void paint(Graphics g) {
        DrawPlayField(g);
        DrawFallingShape(g);
        
    }

    public void DrawFallingShape(Graphics g) {
      
            FallingShape.Display(g, BalkenBreite);
            
    }
    

    public void DrawPlayField(Graphics g) {
        int x, y;
        g.setColor(BalkenFarbe);
        g.fillRect (Tetris.x, 0, BalkenBreite, Tetris.kBreite * Tetris.Ky); //linker Balken
        g.fillRect (Tetris.kBreite * Tetris.Kx + BalkenBreite + Tetris.x, 0, BalkenBreite, Tetris.kBreite * Tetris.Ky);//Rechter Balken
        g.fillRect (Tetris.x, Tetris.kBreite * Tetris.Ky, Tetris.kBreite * Tetris.Kx + BalkenBreite * 2, BalkenBreite);//Unterer Balken
        
        
        for (x = 0; x < Tetris.Kx; x++) {
            for (y = 0; y < Tetris.Ky; y++) {
                    g.setColor(Tetris.HintergrundFarbe);
                    g.fillRect((BalkenBreite +Tetris.x) + x * Tetris.kBreite + 1, y * Tetris.kBreite + 1, Tetris.kBreite - 2, Tetris.kBreite - 2);
                    g.setColor(Color.white);
                    g.drawRect((BalkenBreite +Tetris.x) + x * Tetris.kBreite, y * Tetris.kBreite, Tetris.kBreite - 1, Tetris.kBreite - 1);
                
            }
        }
    }

}


und letzendlich die classe block


C++:
class block{
        public void Display (Graphics g, int xOffs) {
        
        g.setColor(Color.red);
        g.fillRect(100,100,100,100);
        
    }
}


Wie man unschwer sehen kann versuche ich Tetris nachprogrammieren. Mein Problem ist das das Feld (DrawPlayField) ohne weiteres gezeichnet wird nur der rote Quadrat nicht. Welchen Fehler habe ich gemacht? Für Hilfe bedanke ich mich in voraus.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
20.05.2004, 15:15 Uhr
Spacelord
Hoffnungsloser Fall


Nur ne Vermutung:

Code:
protected block FallingShape = null;




MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
20.05.2004, 16:56 Uhr
~Salfador12
Gast


ist da was falsch?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
20.05.2004, 17:20 Uhr
Spacelord
Hoffnungsloser Fall


Naja,
du weißt deinem block Objekt die Nullreferenz zu und rufst später die Methode Display() auf die Nullreferenz auf.Ich bin nicht so der Javafreak aber ich wunder mich dass der da nicht abschmiert.
Versuch doch mal:


Code:
protected block FallingShape = new block();




MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Java ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: