samedi 6 juin 2015
Erste Schritte Canvas verschwinden nicht mehr
Posted on 04:02 by verona
Hallo,
Ich arbeite zur Zeit an einem Schulprojekt. Wir programmieren in einer Gruppe Schiffeversenken und ich bin für die GUI zuständig.
Mittlerweile habe ich einen Startbildschirm. Dort kann ich per button wählen ob ich die Beschreibung lesen oder das Spiel Starten möchte. Das funktioniert auch sehr gut. Nun möchte ich von meinem Spiel, wenn sich die beiden Felder aufgebaut haben, über einen Button die Beschreibung einsehen können. und von der Beschreibung auch wieder zurück zum Spiel. Im Moment kann ich dann nur das Spiel neu starten. Das Problem dabei ist nun wenn ich vom Spiel die Beschreibung aufrufe verschwindet das Spiel und die Beschreibung erscheint(das soll ja so sein) dann geh ich wieder zum Spiel (Die Beschreibung verschwindet und das Spielfeld wird angezeigt) das kann ich 2 mal machen und danach verschwindet meine Beschreibung nicht mehr, aber das Spiel baut sich hinter dem Canvas der Beschreibung auf wenn ich dann noch einmal auf Beschreibung clicke hängt sich die jar ganz auf.
Ich habe hier einmal den Code der Gui eingefügt.
Ich würde mich rießig freuen, wenn mir jemand meinen Fehler aufzeigt oder mir einen Tipp gibt woran es liegen könnte.
Dankeschön schon mal
Grüße Ric
Ich arbeite zur Zeit an einem Schulprojekt. Wir programmieren in einer Gruppe Schiffeversenken und ich bin für die GUI zuständig.
Mittlerweile habe ich einen Startbildschirm. Dort kann ich per button wählen ob ich die Beschreibung lesen oder das Spiel Starten möchte. Das funktioniert auch sehr gut. Nun möchte ich von meinem Spiel, wenn sich die beiden Felder aufgebaut haben, über einen Button die Beschreibung einsehen können. und von der Beschreibung auch wieder zurück zum Spiel. Im Moment kann ich dann nur das Spiel neu starten. Das Problem dabei ist nun wenn ich vom Spiel die Beschreibung aufrufe verschwindet das Spiel und die Beschreibung erscheint(das soll ja so sein) dann geh ich wieder zum Spiel (Die Beschreibung verschwindet und das Spielfeld wird angezeigt) das kann ich 2 mal machen und danach verschwindet meine Beschreibung nicht mehr, aber das Spiel baut sich hinter dem Canvas der Beschreibung auf wenn ich dann noch einmal auf Beschreibung clicke hängt sich die jar ganz auf.
Ich habe hier einmal den Code der Gui eingefügt.
Ich würde mich rießig freuen, wenn mir jemand meinen Fehler aufzeigt oder mir einen Tipp gibt woran es liegen könnte.
Dankeschön schon mal
Grüße Ric
Java Code:
-
-
import java.awt.*;
-
import java.awt.event.*;
-
-
-
//größe Fenster
-
private int x;
-
private int y;
-
-
-
private static int kästchen1 [][];
-
private static int hoehe1 = 10;
-
private static int breite1 = 10;
-
-
-
public FENSTER(){
-
-
-
if (fenster == null) // Object wird nur erstellt wenn noch kein Fester offen ist
-
{
-
-
-
fenster. setResizable (false);
-
fenster. setSize (400, 150);
-
fenster. setVisible (true);
-
fenster. setLayout (null);
-
-
-
{
-
{
-
};
-
}
-
);
-
-
-
//Erstellt den Startbutton
-
SpielStarten.setBounds(20, 63, 100, 50);
-
SpielStarten.setLabel("Spiel Starten");
-
-
-
{
-
SpielStarten(evt);
-
}
-
});
-
fenster.add(SpielStarten);
-
//Erstellt den Button für die Beschreibung
-
Beschreibung.setBounds (140, 63, 100, 50);
-
Beschreibung.setLabel("Beschreibung");
-
{
-
{
-
beschreibungAnzeigenStart(evt);
-
}
-
}
-
);
-
fenster.add(Beschreibung);
-
-
-
}
-
-
-
}
-
//startet das Spiel vom Startscreen
-
{
-
fenster.setSize(1200, 800); //ändert das Fenster in Spielgröße
-
linkesFeldZeichnen();
-
rechtesFeldZeichnen();
-
-
-
fenster.remove(SpielStarten);
-
fenster.remove(Beschreibung);
-
//erstellt den Beschreibungs Button um die Beschreibung währrend des Spiels zu aufzurufen
-
BeschreibungSpiel.setBounds(1100, 25, 100, 50);
-
BeschreibungSpiel.setLabel("Beschreibung");
-
{
-
{
-
beschreibungAnzeigenSpiel(evt);
-
}
-
}
-
);
-
fenster.add(BeschreibungSpiel);
-
-
-
}
-
//zeigt die Beschreibung währrend des Spiels an
-
{
-
fenster.remove(BeschreibungSpiel);
-
fenster.remove(Beschreibung);
-
fenster.remove(SpielStarten);
-
-
//BeschreibungSpiel.setVisible(false);
-
//Beschreibung.setVisible(false); //blendet den Beschreibung button aus
-
SpielStarten.setVisible(false);
-
//SpielStartenBeschreibung.setVisible(true);
-
-
SpielStartenBeschreibung.setBounds(450, 650, 100, 50);
-
SpielStartenBeschreibung.setLabel("Spiel Starten");
-
-
-
{
-
SpielStartenBeschreibung(evt);
-
}
-
});
-
-
-
-
fenster.add(SpielStartenBeschreibung);
-
/*neues Graphik Objekt wird erstellt
-
in diesem wird dann das Textfeld erstellt
-
*/
-
-
-
-
-
{
-
-
-
{
-
-
-
-
-
//Font erzeugen
-
-
-
-
-
g2d.setFont( myFont ); //Schriftart setzen
-
g2d.drawString(s,50,50); //String rendern
-
-
-
}
-
};
-
-
-
-
beschreibung. setSize (600, 600); //setzt größe des Text Feldes
-
beschreibung. setLocation (200, 50); //setzt den Ort des Text Feldes
-
fenster. add (beschreibung); //fügt das Text Feld zum Fenster hinzu
-
-
-
for (int j = 0; j < hoehe1; j++)
-
{
-
for (int k = 0; k < breite1; k++)
-
{
-
fenster.remove(feldLinks[j][k]);
-
}
-
}
-
fenster.remove(Feld1);
-
for (int l = 0; l < hoehe1; l++)
-
{
-
for (int o = 0; o < breite1; o++)
-
{
-
fenster.remove(feldRechts[l][o]);
-
}
-
}
-
fenster.remove(Feld2);
-
}
-
//einblenden der Beschreibung am Start
-
{
-
fenster.setSize(700, 800);
-
-
-
SpielStartenBeschreibung.setBounds(450, 650, 100, 50);
-
SpielStartenBeschreibung.setLabel("Spiel Starten");
-
-
-
{
-
SpielStartenBeschreibung(evt);
-
}
-
});
-
fenster.add(SpielStartenBeschreibung);
-
-
-
fenster.remove(Beschreibung);
-
fenster.remove(SpielStarten);
-
in diesem wird dann das Textfeld erstellt
-
*/
-
{
-
-
-
-
-
//Font erzeugen
-
-
-
-
-
g2d.setFont( myFont ); //Schriftart setzen
-
g2d.drawString(s,50,50); //String rendern
-
-
-
}
-
};
-
beschreibung. setSize (600, 600); //setzt größe des Text Feldes
-
beschreibung. setLocation (0, 50); //setzt den Ort des Text Feldes
-
fenster. add (beschreibung); //fügt das Text Feld zum Fenster hinzu
-
}
-
//startet das Spiel aus der Beschreibung heraus
-
{
-
-
-
fenster.setSize(1200, 800); //ändert das Fenster in Spielgröße
-
linkesFeldZeichnen();
-
rechtesFeldZeichnen();
-
fenster.remove(SpielStarten);
-
fenster.remove(Beschreibung);
-
fenster.remove(SpielStartenBeschreibung);
-
//erstellt den Beschreibungs Button um die Beschreibung währrend des Spiels aufzurufen
-
BeschreibungSpiel.setBounds(1100, 25, 100, 50);
-
BeschreibungSpiel.setLabel("Beschreibung");
-
{
-
{
-
beschreibungAnzeigenSpiel(evt);
-
}
-
}
-
);
-
-
-
fenster.add(BeschreibungSpiel);
-
fenster.remove(beschreibung);
-
}
-
-
-
/**
-
* Zeichnet das linke Spielfeld
-
* dieses ist 10 mal 10 groß und nur grau gefüllt mit schwarzen Trennlinien
-
*
-
*/
-
public static void linkesFeldZeichnen(){
-
int x = 55;
-
int y = 85;
-
//int name = 0;
-
-
-
for (int j = 0; j < hoehe1; j++)
-
{
-
for (int k = 0; k < breite1; k++)
-
{
-
//name++;
-
{
-
-
-
{
-
g. clearRect (0, 0, 47, 47);
-
g. fillRect (0, 0, 47, 47);
-
-
-
}
-
};
-
-
-
y = y+50;
-
feldLinks[j][k]. setSize (47, 47);
-
feldLinks[j][k]. setLocation (x, y);
-
//System.out.println(y);
-
-
-
fenster. add (feldLinks[j][k]);
-
//System.out.println("added");
-
//System.out.println(k);
-
//System.out.println(name);
-
-
-
}
-
x = x+50;
-
y = 85;
-
-
-
}
-
-
-
{
-
-
-
{
-
g. clearRect (0,00, 507, 507);
-
g. fillRect (0,0,507,507);
-
-
-
}
-
};
-
//Feld1. setVisible (true);
-
Feld1. setSize (510, 510);
-
Feld1. setLocation (50, 130);
-
fenster. add (Feld1);
-
-
-
}
-
-
-
/**
-
* Zeichnet das rechte Spielfeld
-
* dieses ist 10 mal 10 groß und nur grau gefüllt mit schwarzen Trennlinien
-
*
-
*/
-
public static void rechtesFeldZeichnen()
-
{
-
{
-
-
-
{
-
g. clearRect (0,00, 507, 507);
-
g. fillRect (0,0,507,507);
-
-
-
}
-
};
-
int c = 655;
-
int v = 85;
-
for (int l = 0; l < hoehe1; l++)
-
{
-
for (int o = 0; o < breite1; o++)
-
{
-
{
-
-
-
{
-
g. clearRect (0, 0, 47, 47);
-
g. fillRect (0, 0, 47, 47);
-
-
-
}
-
};
-
v = v+50;
-
//feldRechts[l][o]. setVisible (true);
-
feldRechts[l][o]. setSize (47, 47);
-
feldRechts[l][o]. setLocation (c, v);
-
//System.out.println(y);
-
-
-
fenster. add (feldRechts[l][o]);
-
//System.out.println("added");
-
//System.out.println(o);
-
}
-
c = c+50;
-
v = 85;
-
}
-
//Feld2. setVisible (true);
-
Feld2. setSize (507, 507);
-
Feld2. setLocation (650, 130);
-
fenster. add (Feld2);
-
-
-
}
-
-
-
/**
-
* Setzt das Kästchen an der Stelle X, Y auf Orange
-
*/
-
-
-
public void markiereGetroffen(int x, int y)
-
{
-
g.clearRect (0, 0, 47, 47);
-
g.fillRect (0, 0, 47, 47); //zeichnet das Kästchen neu in der neu gesetzten Farbe
-
//feldLinks[x][y]. setVisible (true); //setzt das kästchen sichtbar
-
-
-
}
Erste Schritte Canvas verschwinden nicht mehr
Categories: Erste Schritte Canvas verschwinden nicht mehr
Inscription à :
Publier les commentaires (Atom)
0 commentaires:
Enregistrer un commentaire