2016-09-28 53 views
-1

这是我的代码,迄今为House类和NeighborHoodDrive类。我想知道我的线对象需要什么值来为房子中的每个窗口创建窗口窗格?我希望我的问题明确而充分,我不能提出一个问题,但不幸的是它不会被标记出来。我的线对象需要什么值为每个窗口创建窗格?

内训课:

import javafx.scene.Group; 
import javafx.scene.layout.Pane; 
import javafx.scene.paint.Color; 
import javafx.scene.shape.Circle; 
import javafx.scene.shape.Line; 
import javafx.scene.shape.Polygon; 
import javafx.scene.shape.Rectangle; 


public class House { 

    final int BASEWID = 200; 
    final int BASEHT = 250; 
    final int DOORWID = 40; 
    final int DOORHT = 65; 
    final int WINHT = 40; 
    final int WINWID = 40; 

    private Rectangle[] bx = new Rectangle[6]; //base, four windows, doors 
    private Line[] ln = new Line[8]; //roof and window cross frames 
    private Circle[] cr = new Circle[1]; //doorknob 
    private Polygon[] ply = new Polygon[2]; 
    private Group trGrp = new Group(); //group 

    public House(int xOff, int yOff, Pane pane) { 
     initHouse(); 

     setX(xOff); 
     setY(yOff); 


     pane.getChildren().add(trGrp); 
    } 


    //Initialize the house components 
    public void initHouse() { 

     //base of house 
     bx[0] = new Rectangle(DOORWID/2, DOORHT+DOORHT/2, BASEWID, BASEHT); 
     bx[0].setStroke(Color.BLACK); 
     bx[0].setFill(Color.IVORY); 

     //door 
     bx[1] = new Rectangle(bx[0].getX()+DOORWID+40, bx[0].getY()+DOORHT+120, DOORWID, DOORHT); 
     bx[1].setStroke(Color.BLACK); 
     bx[1].setFill(Color.POWDERBLUE); 

     //window 1 
     bx[2] = new Rectangle(bx[0].getX()+DOORWID-10, bx[0].getY()+DOORHT-30, WINWID, WINHT); 
     bx[2].setStroke(Color.BLACK); 
     bx[2].setFill(Color.LAVENDERBLUSH); 

     //window 2 
     bx[3] = new Rectangle(bx[0].getX()+DOORWID+90, bx[0].getY()+DOORHT-30, WINWID, WINHT); 
     bx[3].setStroke(Color.BLACK); 
     bx[3].setFill(Color.LAVENDER); 

     //window 3 
     bx[4] = new Rectangle(bx[0].getX()+DOORWID-10, bx[0].getY()+DOORHT+50, WINWID, WINHT); 
     bx[4].setStroke(Color.BLACK); 
     bx[4].setFill(Color.LAVENDER); 

     //window 4 
     bx[5] = new Rectangle(bx[0].getX()+DOORWID+90, bx[0].getY()+DOORHT+50, WINWID, WINHT); 
     bx[5].setStroke(Color.BLACK); 
     bx[5].setFill(Color.LAVENDERBLUSH); 

     //doorknob 
     double crX1 = bx[0].getX() + BASEWID/2.3; 
     double crY = bx[0].getY() + BASEHT + BASEWID/-7; 
     double crRad = BASEWID/60; 
     cr[0] = new Circle(crX1, crY, crRad); 
     cr[0].setStroke(Color.BLACK); 
     cr[0].setFill(Color.FLORALWHITE); 

     //house line 
     double midX = bx[0].getX() + BASEWID/2; 
     double leftX = bx[0].getX() - BASEWID/2; 
     double rightX = bx[0].getX() + BASEWID + BASEWID/2; 
     double topY = bx[0].getY() - BASEHT/2; 
     double bottomY = bx[0].getY() + BASEHT/2; 
     ln[0] = new Line(midX, topY, leftX, bottomY); 
     ln[1] = new Line(midX, topY, rightX, bottomY); 

     //top of house 
     ply[0] = new Polygon(ln[0].getStartX(),ln[0].getStartY(), 
       bx[0].getX(),bx[0].getY(), 
       bx[0].getX()+bx[0].getWidth(),bx[0].getY()); 
     ply[0].getPoints().addAll(); 
     ply[0].setStroke(Color.BLACK); 
     ply[0].setFill(Color.MEDIUMAQUAMARINE); 

     //window panes 
     ln[2] = new Line(); 


     trGrp.getChildren().addAll(bx[0], bx[1], bx[2], bx[3], bx[4], bx[5], cr[0], ply[0], ln[2]); 
    } 

    // Get the X Coordinate 
    public double getX() 
    { 
     return trGrp.getLayoutX(); 
    } 

    // Set the X Coordinate 
    public void setX(double x) 
    { 
     trGrp.setLayoutX(x); 
    } 

    // Get the Y Coordinate 
    public double getY() 
    { 
     return trGrp.getLayoutY(); 
    } 

    // Set the Y Coordinate 
    public void setY(double y) 
    { 
     trGrp.setLayoutY(y); 
    } 

} 

主要方法:

import javafx.animation.KeyFrame; 
import javafx.animation.Timeline; 
import javafx.application.Application; 
import javafx.event.ActionEvent; 
import javafx.event.EventHandler; 
import javafx.scene.Scene; 
import javafx.stage.Stage; 
import javafx.scene.layout.Pane; 
import javafx.util.Duration; 

public class NeighborhoodDrive extends Application { 

    public static void main(String[] args) { 
     launch(args); 
    } 

    @Override 
    public void start(Stage primaryStage) { 

     //Create a pane to hold the group 
     Pane pane = new Pane(); 

     House house = new House(175, 75 ,pane); 

     //Create handler for moving cars 
     EventHandler<ActionEvent> eventHandler = e -> 
     { 

     }; 
     Timeline animation = new Timeline(
       new KeyFrame(Duration.millis(25), eventHandler)); 
     animation.setCycleCount(Timeline.INDEFINITE); 
     animation.play(); // Start animation 

     //Create a scene and place it in the stage 
     Scene scene = new Scene(pane, 600, 600); 
     primaryStage.setTitle("Neighborhood Drive"); // Set the stage title 
     primaryStage.setScene(scene); // Place the scene in the stage 
     primaryStage.show(); // Display the stage 
    } 
} 
+0

您的代码示例似乎是Java的,但你标记,如JavaScript你的问题。为什么? –

+0

我明白了。我可能只是在推翻它。 – BasdGod

+0

有人可以向我解释为什么我的帖子被拒绝投票吗?这不可能是因为没有研究工作,字面上所有的代码都在那里。如果有人不清楚,请解释一下。 – BasdGod

回答

0

我想我只是它得太多。 Line line =新行(startX,startY,endX,endY);

import javafx.animation.KeyFrame; 
 
import javafx.animation.Timeline; 
 
import javafx.application.Application; 
 
import javafx.event.ActionEvent; 
 
import javafx.event.EventHandler; 
 
import javafx.scene.Scene; 
 
import javafx.stage.Stage; 
 
import javafx.scene.layout.Pane; 
 
import javafx.util.Duration; 
 

 
public class NeighborhoodDrive extends Application { 
 

 
    public static void main(String[] args) { 
 
     launch(args); 
 
    } 
 

 
    @Override 
 
    public void start(Stage primaryStage) { 
 

 
     //Create a pane to hold the group 
 
     Pane pane = new Pane(); 
 

 
     House house = new House(175, 75 ,pane); 
 

 
     //Create handler for moving cars 
 
     EventHandler<ActionEvent> eventHandler = e -> 
 
     { 
 

 
     }; 
 
     Timeline animation = new Timeline(
 
       new KeyFrame(Duration.millis(25), eventHandler)); 
 
     animation.setCycleCount(Timeline.INDEFINITE); 
 
     animation.play(); // Start animation 
 

 
     //Create a scene and place it in the stage 
 
     Scene scene = new Scene(pane, 600, 600); 
 
     primaryStage.setTitle("Neighborhood Drive"); // Set the stage title 
 
     primaryStage.setScene(scene); // Place the scene in the stage 
 
     primaryStage.show(); // Display the stage 
 
    } 
 
}


 
import javafx.scene.Group; 
 
import javafx.scene.layout.Pane; 
 
import javafx.scene.paint.Color; 
 
import javafx.scene.shape.Circle; 
 
import javafx.scene.shape.Line; 
 
import javafx.scene.shape.Polygon; 
 
import javafx.scene.shape.Rectangle; 
 

 

 
public class House { 
 

 
    final int BASEWID = 200; 
 
    final int BASEHT = 250; 
 
    final int DOORWID = 40; 
 
    final int DOORHT = 65; 
 
    final int WINHT = 40; 
 
    final int WINWID = 40; 
 

 
    private Rectangle[] bx = new Rectangle[6]; //base, four windows, doors 
 
    private Line[] ln = new Line[8]; //roof and window cross frames 
 
    private Circle[] cr = new Circle[1]; //doorknob 
 
    private Polygon[] ply = new Polygon[2]; 
 
    private Group trGrp = new Group(); //group 
 

 
    public House(int xOff, int yOff, Pane pane) { 
 
     initHouse(); 
 

 
     setX(xOff); 
 
     setY(yOff); 
 

 

 
     pane.getChildren().add(trGrp); 
 
    } 
 

 

 
    //Initialize the house components 
 
    public void initHouse() { 
 

 
     //base of house 
 
     bx[0] = new Rectangle(DOORWID/2, DOORHT+DOORHT/2, BASEWID, BASEHT); 
 
     bx[0].setStroke(Color.BLACK); 
 
     bx[0].setFill(Color.IVORY); 
 

 
     //door 
 
     bx[1] = new Rectangle(bx[0].getX()+DOORWID+40, bx[0].getY()+DOORHT+120, DOORWID, DOORHT); 
 
     bx[1].setStroke(Color.BLACK); 
 
     bx[1].setFill(Color.POWDERBLUE); 
 

 
     //window 1 
 
     bx[2] = new Rectangle(bx[0].getX()+DOORWID-10, bx[0].getY()+DOORHT-30, WINWID, WINHT); 
 
     bx[2].setStroke(Color.BLACK); 
 
     bx[2].setFill(Color.LAVENDERBLUSH); 
 

 
     //window 2 
 
     bx[3] = new Rectangle(bx[0].getX()+DOORWID+90, bx[0].getY()+DOORHT-30, WINWID, WINHT); 
 
     bx[3].setStroke(Color.BLACK); 
 
     bx[3].setFill(Color.LAVENDER); 
 

 
     //window 3 
 
     bx[4] = new Rectangle(bx[0].getX()+DOORWID-10, bx[0].getY()+DOORHT+50, WINWID, WINHT); 
 
     bx[4].setStroke(Color.BLACK); 
 
     bx[4].setFill(Color.LAVENDER); 
 

 
     //window 4 
 
     bx[5] = new Rectangle(bx[0].getX()+DOORWID+90, bx[0].getY()+DOORHT+50, WINWID, WINHT); 
 
     bx[5].setStroke(Color.BLACK); 
 
     bx[5].setFill(Color.LAVENDERBLUSH); 
 

 
     //doorknob 
 
     double crX1 = bx[0].getX() + BASEWID/2.3; 
 
     double crY = bx[0].getY() + BASEHT + BASEWID/-7; 
 
     double crRad = BASEWID/60; 
 
     cr[0] = new Circle(crX1, crY, crRad); 
 
     cr[0].setStroke(Color.BLACK); 
 
     cr[0].setFill(Color.FLORALWHITE); 
 

 
     //house line 
 
     double midX = bx[0].getX() + BASEWID/2; 
 
     double leftX = bx[0].getX() - BASEWID/2; 
 
     double rightX = bx[0].getX() + BASEWID + BASEWID/2; 
 
     double topY = bx[0].getY() - BASEHT/2; 
 
     double bottomY = bx[0].getY() + BASEHT/2; 
 
     ln[0] = new Line(midX, topY, leftX, bottomY); 
 
     ln[1] = new Line(midX, topY, rightX, bottomY); 
 

 
     //top of house 
 
     ply[0] = new Polygon(ln[0].getStartX(),ln[0].getStartY(), 
 
       bx[0].getX(),bx[0].getY(), 
 
       bx[0].getX()+bx[0].getWidth(),bx[0].getY()); 
 
     ply[0].getPoints().addAll(); 
 
     ply[0].setStroke(Color.BLACK); 
 
     ply[0].setFill(Color.MEDIUMAQUAMARINE); 
 

 
     //vertical window panes 
 
     ln[2] = new Line(70, 251, 70, 213); 
 
     ln[3] = new Line(170, 251, 170, 213); 
 
     ln[4] = new Line(70, 133, 70, 172); 
 
     ln[5] = new Line(170, 133, 170, 172); 
 

 
     //horizontal window panes 
 
     ln[6] = new Line(50, 232, 90, 232); 
 
     ln[7] = new Line(150, 232, 190, 232); 
 
     ln[8] = new Line(50, 152, 90, 152); 
 
     ln[9] = new Line(150, 152, 190, 152); 
 

 

 
     trGrp.getChildren().addAll(bx[0], bx[1], bx[2], bx[3], bx[4], bx[5], cr[0], ply[0], ln[2], ln[3], ln[4], ln[5], ln[6], ln[7], ln[8], ln[9]); 
 
    } 
 

 
    // Get the X Coordinate 
 
    public double getX() 
 
    { 
 
     return trGrp.getLayoutX(); 
 
    } 
 

 
    // Set the X Coordinate 
 
    public void setX(double x) 
 
    { 
 
     trGrp.setLayoutX(x); 
 
    } 
 

 
    // Get the Y Coordinate 
 
    public double getY() 
 
    { 
 
     return trGrp.getLayoutY(); 
 
    } 
 

 
    // Set the Y Coordinate 
 
    public void setY(double y) 
 
    { 
 
     trGrp.setLayoutY(y); 
 
    } 
 

 
}

相关问题