Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Drawing 3 simple houses.
#1
I have recently designed a bit of code for a school assignment that actually draws 3 houses, each one with a specified height and width. It is based on an OOP structure. So here is the house.java code:
Code:
//House: Assignment P4.9 by Brandon Milton
/*
*
*
* Written by brandonio21
* http://brandonsoft.com
* http://bpforums.info
*
* Use as you'd like!
*/
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Rectangle2D;
import java.awt.geom.Line2D;
import java.awt.geom.Rectangle2D.Double;
public class house extends Applet {
int height;
int width;
int x;
int y;
    public house(int theight, int twidth, int tx, int ty){
        height = theight;
        width = twidth;
        x = tx;
        y = ty;
    }
    
    public void draw(Graphics2D g2){
         Rectangle2D.Double base = new Rectangle2D.Double(x,y,width,height); //Create the square that will be the bottom of the house
         int doorHeight = 0;
         if (height < 50){
             doorHeight = height;
         } else{
             doorHeight = 50;
         }
         //^ Size the door to the house if it is small
         Rectangle2D.Double door = new Rectangle2D.Double(x + 20,y + (height - 50),20,doorHeight); //Create the door
         Rectangle2D.Double window = new Rectangle2D.Double(x + 50,(y + height)-60,20,20); //Create the window
         Line2D.Double leftRoof = new Line2D.Double(x,y,x + (width/2),y- (height/2)); //Create the left side of the roof
         Line2D.Double rightRoof = new Line2D.Double(x + (width/2),(y - (height/2)),x+width,y); //Create the right side of the roof
        
         g2.draw(base);
         g2.draw(door);
         g2.draw(window);
         g2.draw(leftRoof);
         g2.draw(rightRoof);
         //Draw them all!
        
        
        
    }    
}

And here is the code for the tester class.. This is just an example, you can recode this to your needs if you are using it!
Code:
//Assignment P4.9 by Brandon Milton
/*
*
*
* Coded by brandonio21
* http://brandonsoft.com
* http://bpforums.info
*
* Feel free to use wherever you'd like!
*/
import java.awt.Graphics;

import java.awt.Graphics2D;
import java.applet.Applet;
import javax.swing.JOptionPane;
public class houseTester extends Applet {
    
    
    int width1 = Integer.parseInt(JOptionPane.showInputDialog("Width of house1")); //Creates an input dialog
    int width2 = Integer.parseInt(JOptionPane.showInputDialog("Width of house2"));//Creates an input dialog
    int width3 = Integer.parseInt(JOptionPane.showInputDialog("Width of house3"));//Creates an input dialog
    int height1 = Integer.parseInt(JOptionPane.showInputDialog("What is the height of house1"));//Creates an input dialog
    int height2 = Integer.parseInt(JOptionPane.showInputDialog("What is the height of house2"));//Creates an input dialog
    int height3 = Integer.parseInt(JOptionPane.showInputDialog("What is the height of house3"));//Creates an input dialog

    int x = Math.max(height1, height2);
    int maxheight = Math.max(x, height3);
//Finds the tallest house height
    public void paint(Graphics g){

        setSize(width1+width2+width3 + 25, (maxheight * 5)); //Sets the window size to give 25px of padding on the right, and a large amount of vertical padding
        
        
        Graphics2D g2 = (Graphics2D)g;
        house hs = new house(height1,width1,0,(0 + (height1*2))); //Draw house with user specs.
        hs.draw(g2);
        house hs2 = new house(height2,width2,width1 + 5,0 + (height2*2));//Draw house with user specs.
        hs2.draw(g2);
        house hs3 = new house(height3,width3,0 + (width1 + width2) + 5,0 + (height3*2));//Draw house with user specs.
        hs3.draw(g2);
        
    }
    
}

Here is the output of the already implemented code(With 100 set for every value):

[attachment=0]<!-- ia0 -->Houses.png<!-- ia0 -->[/attachment]

Enjoy! <!-- sSmile --><img src="{SMILIES_PATH}/icon_e_smile.gif" alt="Smile" title="Smile" /><!-- sSmile -->


Attached Files Thumbnail(s)
   
My Blog | My Setup | My Videos | Have a wonderful day.
#2
How do you get the 4th caption button?
#3
I don't exactly know what you mean, could you possibly attach a screenshot of what you want an explanation of?
My Blog | My Setup | My Videos | Have a wonderful day.
#4
The little button with arrows on each side in the NonClientArea.
#5
Ah, that is actually Teamviewer, I can click it and immediately broadcast a live stream of that window to anyone in my partner list.
My Blog | My Setup | My Videos | Have a wonderful day.


Possibly Related Threads…
Thread Author Replies Views Last Post
  Drawing a bullsEye to the screen. brandonio21 3 15,684 03-02-2013, 10:45 AM
Last Post: baconc

Forum Jump:


Users browsing this thread: 1 Guest(s)