Schachbrett zeichnen

J

JPainter

Gast
Hey, ich wollte ein kleines Programm schreiben indem ich unter anderem mit der paint Methode arbeiten muss. Bevor ich aber mein kleines Projekt in Angriff nehme, dachte ich mir, versuch ich erstmal mit der ein oder anderen Methode aus der Graphics Library umzugehen. Daher wollte ich einfach ein 9x9 oder 10x10 großes Schachbrett zeichnen.

Hier mal mein Versuch:

Java:
import java.awt.*;
import javax.swing.*;

public class Applet extends JApplet
{

      public void paint(Graphics g)
    {
        g.setColor(Color.BLUE);
        g.fillRect(0,0,500,500);

    for (int k = 0; k < 10 ;k=k+2) {
          for (int i = 1; i < 9; i=i+2)
          { 
      g.setColor(Color.BLACK);
      g.fillRect(i*40,40*k,40,40);
      g.setColor(Color.WHITE);
      g.fillRect(k*40,40*i,40,40);
    }
   
    }
    
}
}

Tja wenn ihr es startet könnt ihr sehen, das es nur so halb klappt. Ich hab versucht es mit einem Blatt und einem Stift nachzuvollziehen, aber ich kann mir einfach nicht erklären wieso manche Quadrate nicht gezeichnet werden.
Ihr seit meine Rettung ;)
Danke!
 
T

Tomate_Salat

Gast
Ohne das jz ausgeführt/getestet zu haben: Versuche es mal mit Überschreiben der paintComponent. Zudem würde ich dafür eher gleich ein eigenes Panel nehmen, dass ich überschreibe und dann auf das Applet hinzufüge.
 
S

SlaterB

Gast
was ist denn grundsätzlich dein Plan?
du malst an Position i,k und k,i gleichzeitig, also ziemlich konfus

setze in Zeile 21 ein break, dann wird vorerst nicht ganz so viel gezeichnet,
siehst du dass du an Posititon 0,1 ein schwarzes und an 1,0 ein weißes Rechteck hast?
das passt nicht zusammen

überlege dir ein Grundkonzept, z.B. immer eine Zeile fertig zu zeichnen, dann zur nächsten,
bemale in einer Zeile alle Felder, nicht unbedingt mit +2 etwas überspringe, wechsle die Farbe
 
J

JPainter

Gast
Ok ich hab nun eine Lösung, aber ich verstehe selber nicht wie die klappen kann ;)
Java:
import java.awt.*;
import javax.swing.*;

public class Applet extends JApplet
{

    public void paint(Graphics g)
    {
        g.drawString("Schachfeld", 40, 20);

        for (int i = 1; i <= 9; i++)
        {

            for (int k = 1; k <= 9; k++)

                g.drawRect(40*i,40*k,40,40);
        }

        for (int k = 1; k <= 9 ;k=k+2)
            for (int i = 1; i <= 9; i=i+2)
            { 

                g.setColor(new Color(0,0,0));
                g.fillRect(i*40,40*k,40,40);
        }
        for (int o = 2; o <= 9 ;o=o+2)
            for (int l = 2; l <= 9; l=l+2)
            { 
                if (l%2 == 0)
                {
                    g.setColor(new Color(0,0,0));
                    g.fillRect(l*40,40*o,40,40);
                }

        }

    }
}

Ist das sehr umständlich nun ? Ich gehe mal davon aus, weil ich tausend und eine fortschleife verwendete habe
 

Michael...

Top Contributor
Ist das sehr umständlich nun
Ja zumal du da mehrfach Sachen "überpinselst".
und die funktioniert echt? Da Du ja ausschließlich mit Schwarz zeichnest? Ausserdem ist es Verschwendung x-mal ein Color Objekt der selben Farbe zu erzeugen - zumal die Klasse Color auch für einzelne Farben einen statischen Zugriff bietet
Code:
Color.BLACK
 
S

SlaterB

Gast
da insgesamt nur mit Schwarz gemalt wird, welches am Anfang normalerweise schon gesetzt ist,
braucht man überhaupt nicht die Color zu setzen, oder höchstens 1x am Anfang,

das if [c]if (l%2 == 0)[/c] ist im Moment ohne Wirkung,

ansonsten geht es ja halbwegs, ein Schritt nach dem anderen,

man könnte alles in einer Doppelschleife abarbeiten wenn man eben jeweils prüft, was für das aktuelle Feld zu tun ist,
dann wären Unterscheidungen wie [c]if (l%2 == 0)[/c] wieder interessant
 
Zuletzt bearbeitet von einem Moderator:
J

JPainter

Gast
Ok hast du vielleicht mal eine Lösung wie das mit 2 Doppelschleifen aussieht ?
Habe das auch schon versucht, doch da kam bei mir dann nur Mist raus
 

Michael...

Top Contributor
Java:
g.setColor(Color.BLACK);
g.fillRect(0, 0, 100, 100);
g.setColor(Color.WHITE);
for (int i=0; i<5; i++) {
	for (int k=0; k<5 ; k++) {
		if (k%2==i%2)
			g.fillRect(i*20, k*20, 20, 20);
	}
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Auf einem Schachbrett bewegen programmieren Java Basics - Anfänger-Themen 2
D Schachbrett (8x8) programmieren Java Basics - Anfänger-Themen 3
B Schachbrett Java Basics - Anfänger-Themen 2
F Best Practice Schachbrett Läufer Java Basics - Anfänger-Themen 11
I Schachbrett aus beliebigen Strings erstellen Java Basics - Anfänger-Themen 3
J Matrix für Schachbrett Java Basics - Anfänger-Themen 6
P Das Schachbrett - Reis Problem Java Basics - Anfänger-Themen 21
H Schachbrett erkennen Java Basics - Anfänger-Themen 19
J Schachbrett mit Hilfe von while-Schleifen Java Basics - Anfänger-Themen 10
E einfaches Schachbrett generieren Java Basics - Anfänger-Themen 9
P Schachbrett Java Basics - Anfänger-Themen 7
P Schachbrett Spiel Nr. 01 Java Basics - Anfänger-Themen 17
P Schachbrett mit N x N Feldern Java Basics - Anfänger-Themen 11
B Schachbrett Java Basics - Anfänger-Themen 17
D Schachbrett frage Teil2 Java Basics - Anfänger-Themen 15
D Schachbrett frage Java Basics - Anfänger-Themen 3
D schachbrett aufbauen Java Basics - Anfänger-Themen 29
I Springer auf Schachbrett Java Basics - Anfänger-Themen 18
M Schachbrett Java Basics - Anfänger-Themen 31
J Schachbrett Java Basics - Anfänger-Themen 6
B [Java] Schachbrett Frage Java Basics - Anfänger-Themen 11
J SWING UI Designer und zeichnen Java Basics - Anfänger-Themen 4
luggas89 Mit Jframe live zeichnen Java Basics - Anfänger-Themen 4
K 3D Fläche Zeichnen Java Basics - Anfänger-Themen 2
J Bild auf Hintergrundbild zeichnen Java Basics - Anfänger-Themen 5
R Iterativ zeichnen Java Basics - Anfänger-Themen 1
T Java Swing - Dreieck zeichnen mit verschiedenen Variablen Java Basics - Anfänger-Themen 8
P JFrame, Linien zeichnen, MouseListener Java Basics - Anfänger-Themen 2
KogoroMori21 Mit einer Schleife eine Treppe zeichnen Java Basics - Anfänger-Themen 29
V Speicherzustand zeichnen Java Basics - Anfänger-Themen 0
O Klappt nicht: Ein Panel neu zeichnen Java Basics - Anfänger-Themen 3
CptK Interface Bilder mit Graphics g zeichnen Java Basics - Anfänger-Themen 7
B Java JFrame zeichnen Java Basics - Anfänger-Themen 4
Mosquera f(x)=x² zeichnen Java Basics - Anfänger-Themen 5
J Graphen in Java zeichnen Java Basics - Anfänger-Themen 11
L Anfängerin möchte Linie zeichnen Java Basics - Anfänger-Themen 8
D JPanel mehrere Formen zeichnen Java Basics - Anfänger-Themen 5
S Zeichnen mit Wiederholungen Java Basics - Anfänger-Themen 12
B Wie kann ich Linien rekursiv zeichnen? Java Basics - Anfänger-Themen 4
P Einen String mittig zeichnen? Java Basics - Anfänger-Themen 1
T Koordinatensystem zeichnen - Variablen merken? Quadratische Funktion zeichnen? Java Basics - Anfänger-Themen 5
M Ein Bild durch Objekterzeugung zeichnen Java Basics - Anfänger-Themen 5
W Wie kann ich in Java eine Kurve aus Punkten zeichnen? Java Basics - Anfänger-Themen 25
snipesss Linie zeichnen ohne extra Klasse? Java Basics - Anfänger-Themen 3
C Umrisse von Bilddateien mithilfe Polygonen zeichnen Java Basics - Anfänger-Themen 5
G Aus einem Code ein Sequenzdiagramm zeichnen? Java Basics - Anfänger-Themen 1
K Rechtecke rekursiv zeichnen Java Basics - Anfänger-Themen 20
V Quadrate rekursiv zeichnen Java Basics - Anfänger-Themen 7
B Java Graphen zeichnen - Brauche Hilfe Java Basics - Anfänger-Themen 9
C Schleifenaufgabe - Molekül zeichnen Java Basics - Anfänger-Themen 6
K Ungenauigkeit beim Zeichnen von Funktionen Java Basics - Anfänger-Themen 6
H Linie zeichnen... Java Basics - Anfänger-Themen 16
N Treppe zeichnen Java Basics - Anfänger-Themen 1
M Quadrat zeichnen einfach bitte! Java Basics - Anfänger-Themen 2
P Shape Zeichnen klappt nicht - einlesen der Breite/Höhe schon Java Basics - Anfänger-Themen 1
M in Java zeichnen Java Basics - Anfänger-Themen 2
J JLabel Icon neu zeichnen Java Basics - Anfänger-Themen 2
J Rechteck zeichnen mit Canvas Java Basics - Anfänger-Themen 7
D Zeichnen, Schleifen Java Basics - Anfänger-Themen 7
S Zeichnen , Schleifen Java Basics - Anfänger-Themen 4
S Rechteck zeichnen Java Basics - Anfänger-Themen 2
S Ein Graphics Obejct mehrmals mit denselben Eigenschaften zeichnen lassen?!?!? Java Basics - Anfänger-Themen 4
S Wo beginnt ein Draw String zu zeichnen. Java Basics - Anfänger-Themen 4
S Paint Anwendung: Freihandlinien zeichnen Java Basics - Anfänger-Themen 4
llabusch Layout neu zeichnen lassen Java Basics - Anfänger-Themen 2
A Histogramm zeichnen Java Basics - Anfänger-Themen 2
S Punkt in Java zeichnen Java Basics - Anfänger-Themen 14
E Dreieck zeichnen Java Basics - Anfänger-Themen 3
gamebreiti Methoden JPanel nach clearAll() und add neu zeichnen Java Basics - Anfänger-Themen 1
T Baum mit Turtle zeichnen Java Basics - Anfänger-Themen 2
C Hilfe beim Zeichnen Java Basics - Anfänger-Themen 8
D Haus zeichnen Java Basics - Anfänger-Themen 4
K Methoden Objekt auf JFrame zeichnen Java Basics - Anfänger-Themen 16
H 27 Kreise Zeichnen Java Applet Java Basics - Anfänger-Themen 2
S Problem mit "Zeichnen auf Kommando" Java Basics - Anfänger-Themen 2
M Double Punkte Zeichnen Java Basics - Anfänger-Themen 7
S Funktionen zeichnen Java Basics - Anfänger-Themen 2
2 Bild auf JApplet zeichnen Java Basics - Anfänger-Themen 18
R 2D Grafik zeichnen Java Basics - Anfänger-Themen 4
F Line zeichnen und Werte ändern Java Basics - Anfänger-Themen 6
B Grafik zeichnen Java Basics - Anfänger-Themen 25
B Erste Schritte Weihnachtsbaum zeichnen Java Basics - Anfänger-Themen 6
N Per Button Kreis zeichnen Java Basics - Anfänger-Themen 8
T mehrere Punkte zeichnen ohne löschung Java Basics - Anfänger-Themen 4
J Für 3 Sekunden etwas bestimmtes zeichnen Java Basics - Anfänger-Themen 8
C Kreis nach Mausklick zeichnen Java Basics - Anfänger-Themen 5
C Auf Button-Druck zeichnen Java Basics - Anfänger-Themen 2
R Methoden Zeichnen auf Button-Druck durch Paint-Methode Java Basics - Anfänger-Themen 2
D Klassen Zeichnen von Figuren mittels vorgegebener Klasse Java Basics - Anfänger-Themen 3
J Innerhalb der Border zeichnen Java Basics - Anfänger-Themen 9
J Hoher Speicherverbrauch beim Zeichnen von Images aus einer ArrayList Java Basics - Anfänger-Themen 10
A Blitze mit Linien zeichnen Java Basics - Anfänger-Themen 15
U Kreis um Textfelder zeichnen Java Basics - Anfänger-Themen 4
R Balkendiagramm zeichnen Java Basics - Anfänger-Themen 14
J Bild anhand von Koordinaten zeichnen Java Basics - Anfänger-Themen 10
B GUI Parkplatz zeichnen Java Basics - Anfänger-Themen 10
S Mehrere Zeichnungen zeichnen Java Basics - Anfänger-Themen 16
A Linie Zeichnen Applet mit Double Wert Java Basics - Anfänger-Themen 3
F Image übertragen und zeichnen Java Basics - Anfänger-Themen 8
P Funktion zeichnen Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben