Pada kesempatan kali ini saya berkesempatan membuat lukisa pemandangan melalui pemrograman berbasis java. berikut adalah hasil dari compile codingan saya:
dan berikut adalah source codenya:
1. Canvas
<pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"><code>import javax.swing.*;  
  import java.awt.*;  
  import java.util.List;  
  import java.util.*;  
  public class Canvas  
  {  
   private static Canvas canvasSingleton;
   public static Canvas getCanvas()  
   {  
    if(canvasSingleton == null) {  
     canvasSingleton = new Canvas("BlueJ Shapes Demo", 1000, 800, Color.white);  
    }  
    canvasSingleton.setVisible(true);  
    return canvasSingleton;  
   }  
   private JFrame frame;  
   private CanvasPane canvas;  
   private Graphics2D graphic;  
   private Color backgroundColour;  
   private Image canvasImage;  
   private List objects;  
   private HashMap shapes; 
   private Canvas(String title, int width, int height, Color bgColour)  
   {  
    frame = new JFrame();  
    canvas = new CanvasPane();  
    frame.setContentPane(canvas);  
    frame.setTitle(title);  
    canvas.setPreferredSize(new Dimension(width, height));  
    backgroundColour = bgColour;  
    frame.pack();  
    objects = new ArrayList();  
    shapes = new HashMap();  
   }  
   public void setVisible(boolean visible)  
   {  
    if(graphic == null) {     
     Dimension size = canvas.getSize();  
     canvasImage = canvas.createImage(size.width, size.height);  
     graphic = (Graphics2D)canvasImage.getGraphics();  
     graphic.setColor(backgroundColour);  
     graphic.fillRect(0, 0, size.width, size.height);  
     graphic.setColor(Color.black);  
    }  
    frame.setVisible(visible);  
   }     
   public void draw(Object referenceObject, String color, Shape shape)  
   {  
    objects.remove(referenceObject);  
    objects.add(referenceObject);  
    shapes.put(referenceObject, new ShapeDescription(shape, color));  
    redraw();  
   }  
   public void erase(Object referenceObject)  
   {  
    objects.remove(referenceObject);
    shapes.remove(referenceObject);  
    redraw();  
   }   
   public void setForegroundColor(String colorString)  
   {  
    if(colorString.equals("red"))  
     graphic.setColor(Color.red);  
    else if(colorString.equals("black"))  
     graphic.setColor(Color.black);  
    else if(colorString.equals("blue"))  
     graphic.setColor(Color.blue);  
    else if(colorString.equals("yellow"))  
     graphic.setColor(Color.yellow);  
    else if(colorString.equals("green"))  
     graphic.setColor(Color.green);  
    else if(colorString.equals("magenta"))  
     graphic.setColor(Color.magenta);  
    else if(colorString.equals("white"))  
     graphic.setColor(Color.white);  
    else if(colorString.equals("light brown"))  
     graphic.setColor(new Color(153,102,0));  
    else if(colorString.equals("brown"))  
     graphic.setColor(new Color(102,51,0));  
    else if(colorString.equals("grey"))  
     graphic.setColor(new Color(190,190,190));  
    else if(colorString.equals("light blue"))  
     graphic.setColor(new Color(0,191,255));  
    else  
     graphic.setColor(Color.black);  
   }   
   public void wait(int milliseconds)  
   {  
    try  
    {  
     Thread.sleep(milliseconds);  
    }   
    catch (Exception e)  
    {    
    }  
   }  
   private void redraw()  
   {  
    erase();  
    for(Iterator i=objects.iterator(); i.hasNext(); ) {  
     ((ShapeDescription)shapes.get(i.next())).draw(graphic);  
    }  
    canvas.repaint();  
   }   
   private void erase()  
   {  
    Color original = graphic.getColor();  
    graphic.setColor(backgroundColour);  
    Dimension size = canvas.getSize();  
    graphic.fill(new Rectangle(0, 0, size.width, size.height));  
    graphic.setColor(original);  
   }   
   private class CanvasPane extends JPanel  
   {  
    public void paint(Graphics g)  
    {  
     g.drawImage(canvasImage, 0, 0, null);  
    }  
   }   
   private class ShapeDescription  
   {  
    private Shape shape;  
    private String colorString;  
    public ShapeDescription(Shape shape, String color)  
    {  
     this.shape = shape;  
     colorString = color;  
    }  
    public void draw(Graphics2D graphic)  
    {  
     setForegroundColor(colorString);  
     graphic.fill(shape);  
    }  
   }  
  }  
</code></pre>
2. Triangle
<pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"><code>import java.awt.*;     
  public class Triangle  
  {  
   private int height;  
   private int width;  
   private int xPosition;  
   private int yPosition;  
   private String color;  
   private boolean isVisible; 
   public Triangle()  
   {  
    height = 30;  
    width = 40;  
    xPosition = 50;  
    yPosition = 15;  
    color = "green";  
    isVisible = false;  
   }  
   public void makeVisible()  
   {  
    isVisible = true;  
    draw();  
   }   
   public void makeInvisible()  
   {  
    erase();  
    isVisible = false;  
   }   
   public void moveRight()  
   {  
    moveHorizontal(20);  
   }   
   public void moveLeft()  
   {  
    moveHorizontal(-20);  
   }  
   public void moveUp()  
   {  
    moveVertical(-20);  
   }   
   public void moveDown()  
   {  
    moveVertical(20);  
   }   
   public void moveHorizontal(int distance)  
   {  
    erase();  
    xPosition += distance;  
    draw();  
   }   
   public void moveVertical(int distance)  
   {  
    erase();  
    yPosition += distance;  
    draw();  
   }   
   public void slowMoveHorizontal(int distance)  
   {  
    int delta;  
    if(distance < 0)   
    {  
     delta = -1;  
     distance = -distance;  
    }  
    else   
    {  
     delta = 1;  
    }  
    for(int i = 0; i < distance; i++)  
    {  
     xPosition += delta;  
     draw();  
    }  
   }   
   public void slowMoveVertical(int distance)  
   {  
    int delta;  
    if(distance < 0)   
    {  
     delta = -1;  
     distance = -distance;  
    }  
    else   
    {  
     delta = 1;  
    }  
    for(int i = 0; i < distance; i++)  
    {  
     yPosition += delta;  
     draw();  
    }  
   }   
   public void changeSize(int newHeight, int newWidth)  
   {  
    erase();  
    height = newHeight;  
    width = newWidth;  
    draw();  
   }   
   public void changeColor(String newColor)  
   {  
    color = newColor;  
    draw();  
   }   
   private void draw()  
   {  
    if(isVisible) {  
     Canvas canvas = Canvas.getCanvas();  
     int[] xpoints = { xPosition, xPosition + (width/2), xPosition - (width/2) };  
     int[] ypoints = { yPosition, yPosition + height, yPosition + height };  
     canvas.draw(this, color, new Polygon(xpoints, ypoints, 3));  
     canvas.wait(10);  
    }  
   }   
   private void erase()  
   {  
    if(isVisible) {  
     Canvas canvas = Canvas.getCanvas();  
     canvas.erase(this);  
    }  
   }  
  }  
</code></pre>
3.Circle
<pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"><code>import java.awt.*;
  public class Circle  
  {  
   private int diameter;  
    private int xPosition;  
    private int yPosition;  
    private String color;  
    private boolean isVisible;
   public Circle()  
   {  
       diameter = 30;  
       xPosition = 20;  
       yPosition = 60;  
       color = "blue";  
       isVisible = false;  
   }  
    public void makeVisible()  
    {  
       isVisible = true;  
       draw();  
    }    
    public void makeInvisible()  
    {  
       erase();  
       isVisible = false;  
    }  
   public void moveRight()  
   {  
       moveHorizontal(20);  
   }   
   public void moveLeft()  
   {  
       moveHorizontal(-20);  
   }   
   public void moveUp()  
   {  
       moveVertical(-20);  
   }   
   public void moveDown()  
   {  
       moveVertical(20);  
   }   
   public void moveHorizontal(int distance)  
   {  
       erase();  
       xPosition += distance;  
       draw();  
   }   
   public void moveVertical(int distance)  
   {  
       erase();  
       yPosition += distance;  
       draw();  
   }   
   public void slowMoveHorizontal(int distance)  
   {  
       int delta;  
       if(distance < 0)   
       {  
         delta = -1;  
         distance = -distance;  
       }  
       else   
       {  
         delta = 1;  
       }  
       for(int i = 0; i < distance; i++)  
       {  
         xPosition += delta;  
         draw();  
       }  
   }   
   public void slowMoveVertical(int distance)  
   {  
       int delta;  
       if(distance < 0)   
       {  
         delta = -1;  
         distance = -distance;  
       }  
       else   
       {  
         delta = 1;  
       }  
       for(int i = 0; i < distance; i++)  
       {  
         yPosition += delta;  
         draw();  
       }  
   }   
   public void changeSize(int newDiameter)  
   {  
       erase();  
       diameter = newDiameter;  
       draw();  
   }   
   public void changeColor(String newColor)  
   {  
       color = newColor;  
       draw();  
   }     
    private void draw()  
    {  
       if(isVisible) {  
         Canvas canvas = Canvas.getCanvas();  
         canvas.draw(this, color, new Ellipse2D.Double(xPosition, yPosition, diameter, diameter));  
         canvas.wait(10);  
       }  
    }    
    private void erase()  
    {  
       if(isVisible) {  
         Canvas canvas = Canvas.getCanvas();  
         canvas.erase(this);  
       }  
    }  
  }  
</code></pre>
4. Box
<pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"><code>import java.awt.*;  
  public class Box  
  {  
   private int width;  
   private int height;  
   private int xPosition;  
   private int yPosition;  
   private String color;  
   private boolean isVisible;
   public Box()  
   {  
    width = 30;  
    height = 30;  
    xPosition = 60;  
    yPosition = 50;  
    color = "red";  
    isVisible = false;  
   }  
   public void makeVisible()  
   {  
    isVisible = true;  
    draw();  
   }   
   public void makeInvisible()  
   {  
    erase();  
    isVisible = false;  
   }   
   public void moveRight()  
   {  
    moveHorizontal(20);  
   }   
   public void moveLeft()  
   {  
    moveHorizontal(-20);  
   }   
   public void moveUp()  
   {  
    moveVertical(-20);  
   }   
   public void moveDown()  
   {  
    moveVertical(20);  
   }   
   public void moveHorizontal(int distance)  
   {  
    erase();  
    xPosition += distance;  
    draw();  
   }   
   public void moveVertical(int distance)  
   {  
    erase();  
    yPosition += distance;  
    draw();  
   }   
   public void slowMoveHorizontal(int distance)  
   {  
    int delta;  
    if(distance < 0)   
    {  
     delta = -1;  
     distance = -distance;  
    }  
    else   
    {  
     delta = 1;  
    }  
    for(int i = 0; i < distance; i++)  
    {  
     xPosition += delta;  
     draw();  
    }  
   }   
   public void slowMoveVertical(int distance)  
   {  
    int delta;  
    if(distance < 0)   
    {  
     delta = -1;  
     distance = -distance;  
    }  
    else   
    {  
     delta = 1;  
    }  
    for(int i = 0; i < distance; i++)  
    {  
     yPosition += delta;  
     draw();  
    }  
   }   
   public void changeWidth(int newWidth)  
   {  
    erase();  
    width = newWidth;  
    draw();  
   }   
   public void changeHeight(int newHeight)  
   {  
    erase();  
    height = newHeight;  
    draw();  
   }   
   public void changeColor(String newColor)  
   {  
    color = newColor;  
    draw();  
   }   
   private void draw()  
   {  
    if(isVisible) {  
     Canvas canvas = Canvas.getCanvas();  
     canvas.draw(this, color, new Rectangle(xPosition, yPosition, width, height));  
     canvas.wait(10);  
    }  
   }   
   private void erase()  
   {  
    if(isVisible) {  
         Canvas canvas = Canvas.getCanvas();  
         canvas.erase(this);  
       }  
    }  
  }  
</code></pre>
5. Picture
<pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"><code>  public class Picture  
  {  
   private Box wall;  
   private Box door;  
   private Box window;  
   private Triangle roof;  
   private Circle sun;   
   private Box ground;  
   private Box road;  
   private Circle cloud;  
   private Triangle mountain; 
   public Picture()  
   {  
   }  
   public void draw()  
   {
    ground = new Box();  
    ground.changeColor("light brown");  
    ground.moveHorizontal(-200);  
    ground.moveVertical(420);  
    ground.changeWidth(1600);  
    ground.changeHeight(1200);  
    ground.makeVisible();  
   
    sun = new Circle();  
    sun.changeColor("yellow");  
    sun.moveHorizontal(400);  
    sun.moveVertical(70);  
    sun.changeSize(150);  
    sun.makeVisible();  
   
    mountain = new Triangle(); 
    mountain.changeColor("green"); 
    mountain.moveHorizontal(160);  
    mountain.moveVertical(70);  
    mountain.changeSize(400, 700);   
    mountain.makeVisible();  
   
    mountain = new Triangle(); 
    mountain.changeColor("green"); 
    mountain.moveHorizontal(800);  
    mountain.moveVertical(70);  
    mountain.changeSize(400, 700);   
    mountain.makeVisible();
   
    wall = new Box();  
    wall.changeColor("white");  
    wall.moveVertical(400);  
    wall.moveHorizontal(50);  
    wall.changeWidth(300);  
    wall.changeHeight(200);  
    wall.makeVisible();  
   
    window = new Box();  
    window.changeColor("yellow");  
    window.moveHorizontal(260);  
    window.moveVertical(500);  
    window.changeWidth(60);  
    window.changeHeight(60);  
    window.makeVisible();
   
    window = new Box();  
    window.changeColor("yellow");  
    window.moveHorizontal(60);  
    window.moveVertical(500);  
    window.changeWidth(60);  
    window.changeHeight(60);  
    window.makeVisible();  
   
    door = new Box();  
    door.changeColor("red");  
    door.moveHorizontal(126);  
    door.moveVertical(500);  
    door.changeWidth(50);  
    door.changeHeight(100);  
    door.makeVisible();  
       
    door = new Box();  
    door.changeColor("red");  
    door.moveHorizontal(200);  
    door.moveVertical(500);  
    door.changeWidth(50);  
    door.changeHeight(100);  
    door.makeVisible();  
   
    door = new Box();  
    door.changeColor("brown");  
    door.moveHorizontal(626);  
    door.moveVertical(500);  
    door.changeWidth(50);  
    door.changeHeight(160);  
    door.makeVisible();
   
    road = new Box();  
    road.changeColor("grey");  
    road.moveHorizontal(430);  
    road.moveVertical(435);  
    road.changeWidth(80);  
    road.changeHeight(300);  
    road.makeVisible();  
   
    roof = new Triangle();   
    roof.changeColor("red");  
    roof.changeSize(100, 400);  
    roof.moveHorizontal(205);  
    roof.moveVertical(350);  
    roof.makeVisible();    
   
    roof = new Triangle();   
    roof.changeColor("red");  
    roof.changeSize(100, 400);  
    roof.moveHorizontal(205);  
    roof.moveVertical(320);  
    roof.makeVisible();  
   
    cloud = new Circle();  
    cloud.changeColor("grey");  
    cloud.moveHorizontal(100);  
    cloud.moveVertical(0);  
    cloud.changeSize(45);  
    cloud.makeVisible(); 
   
    cloud = new Circle();  
    cloud.changeColor("grey");  
    cloud.moveHorizontal(0);  
    cloud.moveVertical(0);  
    cloud.changeSize(45);  
    cloud.makeVisible(); 
   
    cloud = new Circle();  
    cloud.changeColor("grey");  
    cloud.moveHorizontal(30);  
    cloud.moveVertical(-20);  
    cloud.changeSize(80);  
    cloud.makeVisible(); 
   
    cloud = new Circle();  
    cloud.changeColor("grey");  
    cloud.moveHorizontal(720);  
    cloud.moveVertical(0);  
    cloud.changeSize(45);  
    cloud.makeVisible(); 
   
    cloud = new Circle();  
    cloud.changeColor("grey");  
    cloud.moveHorizontal(815);  
    cloud.moveVertical(0);  
    cloud.changeSize(45);  
    cloud.makeVisible(); 
   
    cloud = new Circle();  
    cloud.changeColor("grey");  
    cloud.moveHorizontal(750);  
    cloud.moveVertical(-20);  
    cloud.changeSize(80);  
    cloud.makeVisible();  
   
    cloud = new Circle();  
    cloud.changeColor("green");  
    cloud.moveHorizontal(640);  
    cloud.moveVertical(440);  
    cloud.changeSize(110);  
    cloud.makeVisible();
   }  
  }  
</code></pre>

Tidak ada komentar:
Posting Komentar