Zweite Graphics-Methode wird nicht ausgeführt

Status
Nicht offen für weitere Antworten.
F

Fabienne

Gast
Hallo zusammen,

wir (ziemliche Java-Anfänger) sind gerade dabei, ein Dame-Spiel in Java zu programmieren und haben ein "kleines" Problem. Vielleicht kann uns ja hier jemand weiterhelfen.

Wenn der Anwender auf "Datei --> Neues Spiel" klickt, soll das Spielfeld gezeichnet und die Steine sollen in der Anfangsstellung auf das Feld gesetzt.

Dazu haben wir in der Klasse FileNewListener folgenden Code geschrieben:

Code:
public void actionPerformed(ActionEvent e){
		momentanesFenster.zeichneBrett(ZeichenFeld.graphicini);
		momentanesFenster.steineAufstellen(ZeichenFeld.graphicini);
		logo = new Spiellogik();
		Fenster.zug.setText("Schwarz ist am Zug!");
		MouseEventKlasse.klickZaehler = 0;
		MouseEventKlasse.erstKlick = true;
	}

Wenn wir die Applikation laufen lassen, wird beim ersten Aufruf von "Neues Spiel" nur das Brett gezeichnet. Beim zweiten Aufruf von "Neues Spiel" werden dann erst die Steine darauf gesetzt. Danach funktioniert diese Funktion wie gewünscht, wenn man also Steine zieht und danach wieder auf "Neues Spiel" klickt, werden die Steine in die Anfangsstellung gesetzt. Nur beim allerersten Aufruf kriegen wir es nicht hin.

Wahrscheinlich hat es irgendetwas damit zu tun, dass wir zwei Methoden, die etwas zeichnen, aufrufen wollen und uns irgendeine Update-Funktion oder etwas Ähnliches fehlt.

Vielleicht kann uns ja einer mit diesen Informationen schon etwas zu dem Problem sagen. Sonst liefern wir auch gerne noch weiteren Code oder Erklärungen.

Vielen Dank im Voraus!
 
G

Guest

Gast
Kann es sein, dass ihr irgendwo eine funktion namens update überlagert oder eine andere funktion, mit der das AWT die Grafiken kontrolliert?
Kann es sein, dass ihr irgendwo den AWT-Thread angehalten oder deaktiviert habt, der die Grafiken kontrolliert?
Hilft es vielleicht etwas, wenn ihr nach den Grafik-Methoden Funktionen wie repaint() aufruft?
Kann es sein, dass irgendwelche Exceptions auftreten und ihr die mittels try und dann leeren catchs unterdrückt und sie so nicht ausgegeben werden? Vielleicht liegt ja eine solche Exception vor, irgend etwas könnte noch nicht initialisiert worden sein, der AWT-Thread könnte irgendein Problem haben oder irgend eine IndexOutOfBoundsException ist aufgetreten.

Was ich in einem solchen Fall jeweils mache, sind jede Menge System.out.println("blablab"); Ausgaben um genau sehen zu können, wo der Prozessor die Funktionen durchgeht und ob dann wirklich alle Funktionen durchlaufen werden, die benötigt werden.

Vielleicht hilft euch das weiter.
Gruss
Martin
 
C

Christian W.

Gast
Hallo, ich gehöre auch zu den von Fabienne vorgestellten "wir".

Wir haben, zumindest bewußt, keine update-Funktion oder einen anderen AWT-Thread überlagert, angehalten, blockiert oder ähnliches.
Wir haben auch schon versucht, unser Canvas mit repaint() anzusprechen, jedoch leider ohne Erfolg.
Auch exceptions haben wir bislang keine erhalten (wir haben momentan keine leeren catches), ebenso wie Fehlermeldungen.

Das mit dem System.out.print() könnten wir nochmal versuchen, allerdings wissen wir, dass er alle funktionen ausführt, die er ausführen soll, sie aber nicht alle darstellt.
Konkret heißt das in unserem Dame-Spiel, dass er uns das Brett zeichnet (eine Methode), dann die Steine aufstellt (zweite Methode), diese aber nicht zeichnet. Wir wissen, dass die Steine da sind, da wir mit ihnen ziehen können (sie werden dann später nach dem Zug sichtbar, also nur der gewählte Stein...)

Danke schonmal für die Mühe
Christian
 

Quaxli

Top Contributor
Was mich bei Eurem Ansatz grundsätzlich wundert ist, daß Ihr das Zeichnen des Brettes separat aufruft. Grundsätzlich wird das Brett eigentlich immer gezeichnet. Bei mir würde das ungefähr so aussehen:

Überschrieben paint-Methode:

Code:
 public void paint(Graphics g){
  super.paint(g);
  
  if(gameStarted){                   //gameStarted ist in dem Fall ein boolean
    g.drawImage(0,0,brett,...);  //brett ist z. B. ein GIF oder JPEG

    drawStones(g);  // Methode, welche die aktuelle Position der Steine zeichnet
  }


 }

Dementsprechend hätte das Zeichnen des Brettes nichts mit der Spiellogik zu tun.
 
C

Christian W.

Gast
Hallo Quaxli,

so hatten wir das am Anfang auch gelöst. Allerdings haben wir uns im Laufe des Programmierens dann dazu entschieden, die Spielsteine nicht als Objekte, sondern als Eigenschaften der Spielfelder zu definieren (sprich wenn ein Spielfeld nicht den Status '0' hat, ist ein Stein darauf usw.).
Nachdem wir das so implementiert hatten, hat das nicht funktioniert, wenn wir das Brett in der .paint()-Methode aufgerufen haben (ist es nicht so, daß paint() permanent aufgerufen wird?).

Danke für die Mühe und Gruß
Christian
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Jedes zweite Element eines Arrays entfernen Java Basics - Anfänger-Themen 30
L Anpassung der Spaltenbreite auch auf eine zweite Tabelle anwenden Java Basics - Anfänger-Themen 8
K Zweite Ausgabe von vererbten Klassen Java Basics - Anfänger-Themen 3
M Nach einer erstmaligen Eingabe, eine zweite Eingabe nur noch gegen bestätigung möglich Java Basics - Anfänger-Themen 2
L Jede zweite Ziffer entfernen (rekursiv) Java Basics - Anfänger-Themen 6
N ArrayList: Das zweite Element wird zur Liste nicht eingefügt nach dem zweiten request. Java Basics - Anfänger-Themen 3
A Akzeptiert das zweite replaceAll nicht Java Basics - Anfänger-Themen 20
H Wie kann ich jedes zweite Array Wert ausgeben lassen?? Java Basics - Anfänger-Themen 6
A Mit javac zweite Datei compilieren ohne Erste erneut zu compilieren? Java Basics - Anfänger-Themen 7
A OOP Arraybefüllung mit for-Schleifen Problem: Umsprung in die zweite Zeile Java Basics - Anfänger-Themen 11
H RandomAccesFile zweite Zeile schreiben Java Basics - Anfänger-Themen 4
R Image laden die Zweite Java Basics - Anfänger-Themen 4
R Erste und zweite Stelle einer Eingabe auslesen Java Basics - Anfänger-Themen 2
F Mehrdimensionales Array zweite Diemnsion später Konstruieren? Wie Java Basics - Anfänger-Themen 2
U zweite Frage: return, wichtig Java Basics - Anfänger-Themen 8
S Nachricht von Console auf Screen wiedergeben die zweite:-) Java Basics - Anfänger-Themen 7
U Sonderzeichen die zweite Java Basics - Anfänger-Themen 16
S Zahlenraten die zweite Java Basics - Anfänger-Themen 3
K Eclipse - zweite Konsole? Java Basics - Anfänger-Themen 2
ven000m Rauten "Stern" zeichnen, hälfte habe ich zweite? Java Basics - Anfänger-Themen 2
K Neuronales Netz in Java ... die zweite Java Basics - Anfänger-Themen 3
K Wörter zählen auf Internetseiten... die zweite Java Basics - Anfänger-Themen 4
S Klappe die Zweite für Heute Java Basics - Anfänger-Themen 2
A Fehler beim Lesen von Objekten aus Datei (die zweite) Java Basics - Anfänger-Themen 2
M HILFE JPanel - Graphics Java Basics - Anfänger-Themen 1
H Eingabe tätigen bevor Graphics g Fenster öffnet Java Basics - Anfänger-Themen 5
I Java Klassen "Graphics" und "MouseEvent" kombinieren Java Basics - Anfänger-Themen 7
CptK Interface Bilder mit Graphics g zeichnen Java Basics - Anfänger-Themen 7
J Erste Schritte drawLine Methode der Graphics Klasse Java Basics - Anfänger-Themen 2
J GUI / Graphics Java Basics - Anfänger-Themen 2
H Graphics / repaint Java Basics - Anfänger-Themen 8
K Zwei Fragen zu Graphics/Graphics2D Java Basics - Anfänger-Themen 5
R Cast java.awt.Graphics Java Basics - Anfänger-Themen 7
Azazel (Anfängerhilfe) awt.Graphics Schwierigkeiten Java Basics - Anfänger-Themen 6
I Methoden public void paintComponent (Graphics g) Java Basics - Anfänger-Themen 4
B Erste Schritte Anzeige von Graphics Objekten einzeln aktualisieren Java Basics - Anfänger-Themen 1
S Farbige Lebensleiste mit Graphics? Java Basics - Anfänger-Themen 10
S Ein Graphics Obejct mehrmals mit denselben Eigenschaften zeichnen lassen?!?!? Java Basics - Anfänger-Themen 4
S G Graphics Java Basics - Anfänger-Themen 1
thet1983 g.Graphics löschen? Java Basics - Anfänger-Themen 1
M Probleme mit paint() aus java.awt.Graphics Java Basics - Anfänger-Themen 2
A EAN13 Font auf graphics g erzeugt Monospaces Java Basics - Anfänger-Themen 14
N Graphics to png Java Basics - Anfänger-Themen 10
N Methode draw(Graphics g) aufrufen Java Basics - Anfänger-Themen 6
Dogge Problem mit paint(Graphics g) im Applet Java Basics - Anfänger-Themen 13
J Problem mit paint(Graphics g) Java Basics - Anfänger-Themen 4
J Jtable änderung soll graphics aktualisieren Java Basics - Anfänger-Themen 4
J JAVA Graphics Java Basics - Anfänger-Themen 5
A Graphics Objekt verhält sich merkwürdig Java Basics - Anfänger-Themen 2
G DRUCKEN von z.B. eines JFrame über print(Graphics g) Java Basics - Anfänger-Themen 9
Maxim6394 Probleme mit Graphics Java Basics - Anfänger-Themen 7
W von Graphics in BufferedImage Java Basics - Anfänger-Themen 10
M OOP Graphics immer selbstbezihend Java Basics - Anfänger-Themen 12
K Problem mit Parameter von paint(Graphics g) Java Basics - Anfänger-Themen 3
T Transparente Bilder mit Graphics zeichnen Java Basics - Anfänger-Themen 17
H Probleme mit Graphics G Java Basics - Anfänger-Themen 2
M Schiebepuzzle: MouseListener und Graphics? Java Basics - Anfänger-Themen 6
J Graphics g Java Basics - Anfänger-Themen 4
H Probleme mit Graphics Java Basics - Anfänger-Themen 5
B MouseListener & Graphics Java Basics - Anfänger-Themen 10
M Graphics zeichnen Java Basics - Anfänger-Themen 2
F Graphics PDFBox Java Basics - Anfänger-Themen 9
M kurze Frage zu Graphics Java Basics - Anfänger-Themen 5
Luk10 Buch für Swing/Awt/Graphics Java Basics - Anfänger-Themen 4
M Java Graphics etc. Java Basics - Anfänger-Themen 2
M Concurrency und Graphics Java Basics - Anfänger-Themen 9
F Was ist Graphics g wirklich? Java Basics - Anfänger-Themen 5
J Klasse Graphics Nullpointerexception Java Basics - Anfänger-Themen 8
P Frage zu Graphics Java Basics - Anfänger-Themen 2
O graphics methode zeigt mein bild nicht an Java Basics - Anfänger-Themen 7
T rotes herz public void paint(Graphics g) Java Basics - Anfänger-Themen 2
G paintComponent(Graphics g) Java Basics - Anfänger-Themen 2
eQui Oberfläche mit Graphics zeichnen Java Basics - Anfänger-Themen 11
S Dicke bei Graphics Ovject einstellen Java Basics - Anfänger-Themen 2
V KSKB zum Verständnis von Graphics und paintComponent Java Basics - Anfänger-Themen 6
G mit Graphics erzeugte Strings verschwinden sofort wieder Java Basics - Anfänger-Themen 7
T Graphics von java.awt.Frame soll sich inhalt merken Java Basics - Anfänger-Themen 3
G Graphics-Object skalieren Java Basics - Anfänger-Themen 9
G Constructor & Graphics g Java Basics - Anfänger-Themen 5
F Frage zum Graphics Objekt Java Basics - Anfänger-Themen 3
D Instanz von Graphics in run() Java Basics - Anfänger-Themen 8
B Mouseevents und Graphics Java Basics - Anfänger-Themen 11
D Abstrakte Klasse Graphics Java Basics - Anfänger-Themen 3
W Verständisfrage zu Graphics Objekt Java Basics - Anfänger-Themen 3
P umwandeln von graphics nach image Java Basics - Anfänger-Themen 4
A Graphics g, AdjustmentEvent e Java Basics - Anfänger-Themen 5
Dilandau paint(Graphics g) { unbekannt in try{} / catch{} }? Java Basics - Anfänger-Themen 5
S Graphics Java Basics - Anfänger-Themen 11
T Rekursive Methode Java Basics - Anfänger-Themen 13
Ü Methode soll Quadrat aus der Summer zurückgeben Java Basics - Anfänger-Themen 10
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
Leyla Spezifischte Methode Java Basics - Anfänger-Themen 16
M Methode zielnah zeigt das gewünschte Ausgabe nicht an Java Basics - Anfänger-Themen 3
L Variablenwerte aus einer Methode übergeben Java Basics - Anfänger-Themen 2
T Methode soll etwas ausrechnen und zurückgeben (klappt nd) hat wer eine Idee? Java Basics - Anfänger-Themen 11
P Main Methode scheint Constructor aufzurufen, ohne dass es so gecoded ist Java Basics - Anfänger-Themen 2
T Aufruf der Methode einer Oberklasse, wenn sie in der Unterklasse überschrieben ist. Polymorphie. Java Basics - Anfänger-Themen 2
C Zugriff auf Methode Java Basics - Anfänger-Themen 2
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
T Methode akzeptiert String nicht Java Basics - Anfänger-Themen 18

Ähnliche Java Themen

Neue Themen


Oben