87 lines
1.9 KiB
Java
87 lines
1.9 KiB
Java
|
|
/**
|
|
* This class represents a simple picture. You can draw the picture using
|
|
* the draw method. But wait, there's more: being an electronic picture, it
|
|
* can be changed. You can set it to black-and-white display and back to
|
|
* colors (only after it's been drawn, of course).
|
|
*
|
|
* This class was written as an early example for teaching Java with BlueJ.
|
|
*
|
|
* @author Michael Kolling and David J. Barnes
|
|
* @version 1.1 (24 May 2001)
|
|
*/
|
|
public class Picture
|
|
{
|
|
private Square wall;
|
|
private Square window;
|
|
private Triangle roof;
|
|
private Circle sun;
|
|
|
|
/**
|
|
* Constructor for objects of class Picture
|
|
*/
|
|
public Picture()
|
|
{
|
|
// nothing to do... instance variables are automatically set to null
|
|
}
|
|
|
|
/**
|
|
* Draw this picture.
|
|
*/
|
|
public void draw()
|
|
{
|
|
wall = new Square();
|
|
wall.moveVertical(80);
|
|
wall.changeSize(100);
|
|
wall.makeVisible();
|
|
|
|
window = new Square();
|
|
window.changeColor("black");
|
|
window.moveHorizontal(20);
|
|
window.moveVertical(100);
|
|
window.makeVisible();
|
|
|
|
roof = new Triangle();
|
|
roof.changeSize(50, 140);
|
|
roof.moveHorizontal(60);
|
|
roof.moveVertical(70);
|
|
roof.makeVisible();
|
|
|
|
sun = new Circle();
|
|
sun.changeColor("yellow");
|
|
sun.moveHorizontal(180);
|
|
sun.moveVertical(-10);
|
|
sun.changeSize(60);
|
|
sun.makeVisible();
|
|
}
|
|
|
|
/**
|
|
* Change this picture to black/white display
|
|
*/
|
|
public void setBlackAndWhite()
|
|
{
|
|
if(wall != null) // only if it's painted already...
|
|
{
|
|
wall.changeColor("black");
|
|
window.changeColor("white");
|
|
roof.changeColor("black");
|
|
sun.changeColor("black");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Change this picture to use color display
|
|
*/
|
|
public void setColor()
|
|
{
|
|
if(wall != null) // only if it's painted already...
|
|
{
|
|
wall.changeColor("red");
|
|
window.changeColor("black");
|
|
roof.changeColor("green");
|
|
sun.changeColor("yellow");
|
|
}
|
|
}
|
|
|
|
}
|