我做了直到这,但它没有显示任何输出。
import acm.program.*;
import acm.graphics.*;
import java.awt.*;
public class Test5 extends GraphicsProgram {
public void run() {
GRect rect = new GRect(0,0,50,50);
for(int i=1;i<=8;i++){
for(int j=1;j<=8;j++)
{
if(((i + j) % 2 == 0))
{
rect.setColor(Color.WHITE);}
else
{
rect.setColor(Color.BLACK); }
add(rect);
}
}
}
}
最佳答案
一个简单的方法:
检查i
和j
是否均为偶数,或者i
和j
是否均为奇数。
更好的是,您可以比较i
和j
的均一/奇数是否相等。
// Fill black.
g.setColor(Color.BLACK);
g.fillRect(0, 0, getWidth(), getHeight());
// Color red tiles.
g.setColor(Color.RED);
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
if (i % 2 == j % 2) {
g.fillRect(i * tileSize, j * tileSize, tileSize, tileSize);
}
}
}
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class ChessBoard extends JPanel {
private int size;
public ChessBoard(int size) {
this.setPreferredSize(new Dimension(size, size));
this.size = size;
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
int tileSize = size / 8;
// Fill black.
g.setColor(Color.BLACK);
g.fillRect(0, 0, getWidth(), getHeight());
// Color red tiles.
g.setColor(Color.RED);
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
if (i % 2 == j % 2) {
g.fillRect(i * tileSize, j * tileSize, tileSize, tileSize);
}
}
}
}
public static void main(String[] args) {
JFrame f = new JFrame();
Container c = new ChessBoard(400);
f.setContentPane(c);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLocationRelativeTo(null);
f.pack();
f.setVisible(true);
}
}
关于java - 用Java创建棋盘,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21655028/