2016-11-02 4 views
1

Ich habe Probleme herauszufinden, wie man die Nullen in dieser Tabelle entfernt. Ich habe versucht, es online zu suchen, und habe wenig Erfolg damit gehabt, es herauszufinden (wahrscheinlich nicht richtig suchen). Ich versuche, # 1 neben einigen stilistischen Änderungen wie Abbildung # 2 erscheinen zu lassen.Java: Startschleifeninkrement zum Zeichnen einer Multiplikationstabelle

Ich würde jede Hilfe zu schätzen wissen.

Code: (http://www.buildingjavaprograms.com/DrawingPanel.java) Zeichnung Tafel verwendet

import java.awt.*; 

public class IfGridFor { 
    public static void main(String[] args) { 
     DrawingPanel panel = new DrawingPanel(400, 520); 
     panel.setBackground(Color.blue); 
     Graphics g = panel.getGraphics(); 

     int sizeX = 40; 
     int sizeY = 40; 
     for (int x = 0; x < 10; x++) { 
      for (int y = 0; y <= 12; y++) {    
       int cornerX = x*sizeX; 
       int cornerY = y*sizeY; 

       if ((x + y) % 2 == 0) 
        g.setColor(Color.green); 
       else 
        g.setColor(Color.yellow); 

       g.fillRect(cornerX+1, cornerY+1, sizeX-2, sizeY-2); 
       g.setColor(Color.black); 
       g.drawString(x + " * " + y, cornerX + 5, cornerY + 15); // text is 
       g.drawString("= " + x * y, cornerX + 5, cornerY + 33); // offsets 
      } 
     } 
    } 
} 

Abbildung # 1:

Figure #1

Abbildung # 2:

Figure #2

Antwort

2

Sie sind fast fertig - alles was Sie brauchen ist ändern, was von x gezeigt wird, y, x*y zu (x+1), (y+1), (x+1)*(y+1) und die Höhe der Platte um eine Zeile zu reduzieren:

DrawingPanel panel = new DrawingPanel(400, 480); // 12 rows, not 13 
... 
for (int x = 0; x < 10; x++) { 
    for (int y = 0; y < 12; y++) { // < instead of <= 
     ... 
     g.drawString((x+1) + " * " + (y+1), cornerX + 5, cornerY + 15); // text is 
     g.drawString("" + (x+1) * (y+1), cornerX + 5, cornerY + 33); // offsets 
    } 
} 

Der Rest des Codes (d.h. die ... Teile) bleiben gleich.

1

Wenn ich Ihre Frage richtig verstehe, möchten Sie die obere Zeile und die linke Spalte entfernen? Wenn dies der Fall ist, starten Sie Ihre for Loops mit einem statt mit Null. Auch Ihre äußere Schleife sollte die Bedingung x <= 10 haben, wenn Sie möchten, dass die Zahl das Quadrat mit der Bezeichnung '10' enthält.

dann die Linien ändern:

int cornerX = x*sizeX; 
int cornerY = y*sizeY; 

zu:

int cornerX = (x-1)*sizeX; 
int cornerY = (y-1)*sizeY; 
+0

ich versucht und es hat nicht den blauen Raum, in dem sie einmal, auch waren, als die Platte eingestellt wird. – Aramza

+0

sehe meine aktualisierte Antwort – JavaTheNutt

Verwandte Themen