2016-10-24 8 views
-6

Nicht zu lügen, das ist ein Hausaufgaben-Problem. Die Sache ist, wir sind noch nicht im Detail über Grafiken gegangen, nur durch ein Beispiel.Versuchen, ein Schachbrett mit einem Array und Grafiken zu erstellen

Ich bin nicht sicher, was mit meinem Programm falsch ist. Alles scheint auszukommen, aber das Fenster, das erscheint, zeigt nicht an, was ich zu erstellen versuche.

import java.util.*; 
import java.awt.Color; 
import java.awt.Graphics; 
import javax.swing.JFrame; 
import javax.swing.JComponent; 
public class ProblemR6_37 
{ 
    public static void draw(Graphics g) 
    { 
    int[][] values=new int[8][8]; 
    for (int i=0; i<values.length; i++) 
    { 
     for (int j=0; j<values[i].length; j++) 
     { 
     if ((i+j)%2!=0) 
     {values[i][j]=1;} 
     } 
    } 
    for (int i=0; i<values.length; i++) 
    { 
     for (int j=0; j<values[i].length; i++) 
     { 
     if (values[i][j]==0) 
     { 
      g.setColor(Color.BLACK); 
      g.fillRect(j*20, i*20, 20,20); 
     } 
     else if (values[i][j]==1) 
     { 
      g.setColor(Color.WHITE); 
      g.fillRect(j*20,i*20,20,20); 
     } 
     } 
    } 
    } 
    public static void main(String[] args) 
    { 
    JFrame frame=new JFrame(); 
    frame.setSize(400,400); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    JComponent component=new JComponent() 
    { 
     public void paintComponent(Graphics graph) 
     { 
     draw(graph); 
     } 
    }; 
    frame.add(component); 
    frame.setVisible(true); 
    } 
} 

Die meisten Grafikelemente werden direkt aus dem Beispiel gezogen.

Jede Hilfe wäre toll!

+1

'" ... zeigt nicht an, was ich zu erstellen versuche "' - was Sie * nicht * gesagt haben! Bitte beheben Sie dies. –

+0

Ändern Sie das zweite innere Schleifeninkrement von 'i ++' in 'j ++'. Viel Glück! – kjsebastian

+0

Und wenn Sie Fehler oder Ausnahmen sehen - sollten Sie uns das auch sagen. –

Antwort

0

Es gibt nur ein Problem in Ihrem Code:

ändern for (int j=0; j<values[i].length; i++)-for (int j=0; j<values[i].length; j++)

Sie setzen i++ statt j++.

+0

Ich fühle mich jetzt wirklich dumm. Hätte aufmerksamer sein sollen. Es tut uns leid –

Verwandte Themen