Глава 3
Задача 3.20 "Шахматная доска. "
Напишите программу, создающую изображение шахматной доски, большую часть которой составляет метод paint с двумя вложенными циклами и двумя вызовами метода fillRect.
Решение
Два внутренних цикла for рисуют две первые линии шахматной доски. Внешний цикл for повторяет эти две линии четыре раза, смещая их координаты. Получается шахматная доска! "Рисуйте Шура!"
Код программы:
import java.awt.*;
import java.awt.event.*;
class ChessBoard extends Frame {
ChessBoard () {
add ("Center", new ChBoard());
// Enable the program to end when the window is closed
addWindowListener(new WindowAdapter () {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
// Set the frame's title and size and activate the drawing
// described by the paint method.
setTitle ("ChessBoard");
setSize (600, 500);
setVisible (true);
}
public static void main (String [ ] args) {
new ChessBoard ();
}
}
class ChBoard extends Canvas {
public void paint (Graphics g) {
// Draw the flag using coloured rectangles
int k = 40;
int l = 80;
int x = k;
int y = k;
int m = 1;
for(int i=1;i<5;i++){
for(int j = 1; j < 5; j++){
g.setColor (Color.black);
g.fillRect (x,y,40,40);
m = x+k;
g.setColor (Color.yellow);
g.fillRect (m,y,40,40);
x = x+l;
}
x = k;
m = 1;
y = y + k;
for(int r = 1; r < 5; r++){
g.setColor (Color.yellow);
g.fillRect (x,y,40,40);
m = x+k;
g.setColor (Color.black);
g.fillRect (m,y,40,40);
x = x+l;
}
y = y + k;
x = k;
}
}
}
Результат :
Назад |
Начало урока |
Вверх |
Вперед
Содержание