Kreuz lässt sich nicht zeichnen

Status
Nicht offen für weitere Antworten.

Reality

Top Contributor
Hi,
ich will gerade ein Tic Tac Toe Speil programmieren. Ich scheitere momentan beim Kreuz zeichnen:

Code:
  public void paint(Graphics g){
    //Spielfeld
    g.fillRect(60, 120, 150, 2);
    g.fillRect(60, 170, 150, 2);
    g.fillRect(110, 70, 2, 150);
    g.fillRect(160, 70, 2, 150);
    
    // die Zahlen 5 und 5 sind nur zum Testen...
    drawCross(g, 5, 5);
  }

  public void drawCross(Graphics g, int x, int y){
    //Ein Kreuz bzw. 'X' malen
    int x_pos[] = {x, x+15, x+15, x};
    int y_pos[] = {y, y+15, 5, y+15};
    
    g.setColor(Color.RED);
    g.drawPolygon(x_pos, y_pos, 2);
  }

Es wird nur das Spielfeld gezeichnet.
Was mache ich falsch?!

Liebe Grüße
Reality
 

Reality

Top Contributor
Der komplette Quelltext zum Compilieren und ausprobieren:

Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Spielfeld extends JFrame{

  Spielfeld(){
    JPanel contentPane = (JPanel) getContentPane();
    contentPane.setBackground(Color.WHITE);
    setContentPane(contentPane);
  }

  public void paint(Graphics g){
    //Spielfeld zeichnen
    g.fillRect(60, 120, 150, 2);
    g.fillRect(60, 170, 150, 2);
    g.fillRect(110, 70, 2, 150);
    g.fillRect(160, 70, 2, 150);

    drawCross(g, 5, 5);
  }

  public void drawCross(Graphics g, int x, int y){
    //Ein 'X' malen
    int x_pos[] = {x, x+15, x+15, x};
    int y_pos[] = {y, y+15, 5, y+15};

    g.setColor(Color.RED);
    g.drawPolygon(x_pos, y_pos, 2);
  }

  public static void main(String[] args) {
    JFrame frame = new Spielfeld();
    frame.setSize(300, 300);
    frame.setVisible(true);
    frame.setTitle("Tic Tac Toe");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    frame.addMouseListener(new MouseAdapter(){
      public void mouseClicked(MouseEvent me){
        int x = me.getX();
        int y = me.getY();
      }
    });
  }
}

Liebe Grüße
Reality
 

Anubis

Bekanntes Mitglied
In der Paint-Methode wird keine Farbe gesetzt.
Ist das normal, oder könnte es daran liegen?
------------
Edit: Bei mir klappt's mit dem obigen Code
 

Reality

Top Contributor
Reality hat gesagt.:
Bei dir erscheint auch ein rotes X?
Sorry, hab mich unklar ausgedrückt. "Bei dir erscheint ein rotes X?", soll das heissen, denn bei mir erscheint es nicht.

Könnten vielleicht die anderen mal den Code compilieren und berichten, ob ein rotes X erscheint? Ich suche immernoch eine Lösung des Problems.

Liebe Grüße
Reality
 

Anubis

Bekanntes Mitglied
Problem gefunden!!!! Die Y-Koordiante hängt vom Oberen rand des Fensters ab. Das heisst: Du mlast dein Kruz in die Titelleiste, deshalb ist scheinbar nichst zu sehen.
Ein Kreuz ist kein Polygon. Ich habs mal korrigiert:
Code:
  public void drawCross(Graphics g, int x, int y){
    //Ein 'X' malen
    g.setColor(Color.RED);
	g.drawLine(x, y, x+15, y+15);
	g.drawLine(x+15, y, x, y+15);
  }

Führe die Methode mal mit
Code:
drawCross(g, 40, 40);
aus, dann siehst du es auch.
 

Reality

Top Contributor
Hi Anubis,
danke für deine Hilfe! :)

Kennst du eine Möglichkeit die Linien dicker zu zeichnen?

Diese Methode finde ich etwas umständlich:

Code:
  public void drawCross(Graphics g, int x, int y){
    //Ein 'X' malen
    g.setColor(Color.RED);
    g.drawLine(x, y, x+20, y+20);
    g.drawLine(x-1, y, x+19, y+20);
    g.drawLine(x+20, y, x, y+20); 
    g.drawLine(x+19, y, x-1, y+20);
  }

Liebe Grüße
Reality
 

Griffin

Bekanntes Mitglied
Als ich den Code ausprobiert habe (mit korrigierten Stellen) bewirkt bei mir folgende Zeile nichts (auch mit andern Farben nicht):
Code:
contentPane.setBackground(Color.WHITE);
Nur weiss ich nicht wie man das ändern kann.
Sowieso ist mir der Konstrukto bischen rätselhaft.
 
B

Beni

Gast
Kennst du eine Möglichkeit die Linien dicker zu zeichnen?

Verwende Graphics2D. Dort kannst du ein "Stroke" (am einfachsten ein BasicStroke) setzen, welches das Zeichenverhalten von Shapes beeinflusst. Und eine Linie kann man mit einer "Line2D" (ein Shape) zeichnen...
 

Reality

Top Contributor
Griffin hat gesagt.:
Als ich den Code ausprobiert habe (mit korrigierten Stellen) bewirkt bei mir folgende Zeile nichts (auch mit andern Farben nicht):
Code:
contentPane.setBackground(Color.WHITE);
Nur weiss ich nicht wie man das ändern kann.
Sowieso ist mir der Konstrukto bischen rätselhaft.

Jo, das ist mein 2. Problem mit dem ich mich am Schluß beschäftige. Es sei denn, jemand hat sofort eine Lösung parat.

Verwende Graphics2D. Dort kannst du ein "Stroke" (am einfachsten ein BasicStroke) setzen, welches das Zeichenverhalten von Shapes beeinflusst. Und eine Linie kann man mit einer "Line2D" (ein Shape) zeichnen...

Danke, werde ich mir auch am Schluß anschauen.

Liebe Grüße
Reality
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Blender3D VLCJ Video lässt sich nicht mehr abspielen nach mysql Installation Spiele- und Multimedia-Programmierung 1
O Fehler bei Programmierung lässt Figur nicht bewegen Spiele- und Multimedia-Programmierung 5
xFearofdarkness Feinde überlappen sich in Java Spiel Spiele- und Multimedia-Programmierung 3
K Mein Jump and Run charakter bewegt sich nicht mehr rückwärts... Spiele- und Multimedia-Programmierung 0
R Memory - Nicht alle Button lassen sich aktivieren? Spiele- und Multimedia-Programmierung 1
P Sich bewegende Kamera Spiele- und Multimedia-Programmierung 12
I Wo befindet sich ein Punkt? Spiele- und Multimedia-Programmierung 6
N der Player bewegt sich nicht Spiele- und Multimedia-Programmierung 14
R Game Loop verhält sich eigenartig Spiele- und Multimedia-Programmierung 1
A Spielball bewegt sich nicht richtig, prallt falsch ab Spiele- und Multimedia-Programmierung 7
Androbin Mein Spiel will sich nicht zeichnen lassen !!! Spiele- und Multimedia-Programmierung 7
S Animation zieht "Spur" hinter sich her Spiele- und Multimedia-Programmierung 2
M Bildschirmgröße ändert sich Spiele- und Multimedia-Programmierung 10
M Würdet ihr sagen Java Applets eignen sich gut Spiele- und Multimedia-Programmierung 5
J Java3D - Farben vermischen sich Spiele- und Multimedia-Programmierung 7
E [LWJGL] Karusell, mehrere Objekte drehen sich um einen Mittelpunkt Spiele- und Multimedia-Programmierung 31
CookieSoft 3D Würfel will sich nicht drehen! [LWJGL] Spiele- und Multimedia-Programmierung 2
M Beim schießen richtet sich die Kugel nach der Maus aus (Quaternion) Spiele- und Multimedia-Programmierung 5
J Pufferproblem bei sich wiederholenden MouseEvents Spiele- und Multimedia-Programmierung 4
T JOGL im OrthoMode und Texturen verfärben sich Spiele- und Multimedia-Programmierung 3
S Programm hängt sich auf wenn Lied abspielt Spiele- und Multimedia-Programmierung 4
W 2 Bälle, die sich abstoßen Spiele- und Multimedia-Programmierung 24
F RPG - Spielfigur soll sich nicht frei bewegen können. Anregugen wären gerne gesehen^^ Spiele- und Multimedia-Programmierung 13
Ivan Dolvich [LWJGL] Texturen überlagern sich Spiele- und Multimedia-Programmierung 2
P JFileChooser öffnet sich drei mal Spiele- und Multimedia-Programmierung 4
Dragonfire Java Sound API - Lautstärke ändert sich nicht Spiele- und Multimedia-Programmierung 2
H Jogl-Animator - Inhalt ändert sich nicht Spiele- und Multimedia-Programmierung 4
M Sich nach links verschiebendes Bild Spiele- und Multimedia-Programmierung 2
L Figur soll sich selbständig Bewegen Spiele- und Multimedia-Programmierung 12
S Polygon bewegt sich nach mehreren aufrufen immer schneller Spiele- und Multimedia-Programmierung 3
B Bounds drehen sich nicht mit.... Spiele- und Multimedia-Programmierung 7
R Eignet sich Java für ein Beat'em'Up? Spiele- und Multimedia-Programmierung 3

Ähnliche Java Themen

Neue Themen


Oben