10-05-2011, 06:34 PM
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:
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!
Here is the output of the already implemented code(With 100 set for every value):
[attachment=0]<!-- ia0 -->Houses.png<!-- ia0 -->[/attachment]
Enjoy! <!-- s --><img src="{SMILIES_PATH}/icon_e_smile.gif" alt="" title="Smile" /><!-- s -->
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! <!-- s --><img src="{SMILIES_PATH}/icon_e_smile.gif" alt="" title="Smile" /><!-- s -->