我的项目中有两个课程。Main.java
和Village.java
。该类Main.java
应该将一个GraphicsContext
对象传递给,Village.java
以便它在 的 Application 框架上绘制一些图像Main.java
。但似乎我的代码有一个错误,因为它没有绘制任何东西......这是我的代码......
//This is the main class and it extends Application class for drawing a frame object
public class Main extends Application{
//Define the main method
public static void main(String args[]){
//Draw the frame
launch(args);
}
//This method override and passes a GraphicsContext object to a method in another class for drawing image
@Override
public void start(Stage stage) throws Exception {
//Set the title of the application window
stage.setTitle("Village");
Group root= new Group();
//Define a new canvas object
Canvas newcanvas= new Canvas();
//Get GraphicsContext object from the canvas
GraphicsContext gc=newcanvas.getGraphicsContext2D();
//Get an object of the class whose draw() method we wish to access
Village myvillage=Village.create();
//Call the method and pass GraphicsContext object as a parameter
myvillage.draw(gc);
root.getChildren().add(newcanvas);
stage.setScene(new Scene(root));
stage.show();
}
}
现在另一个具有目标draw(GraphicsContext)
方法的类是这个..在那里定义的图像在same directory
这些类文件中。
public class Village{
// Y co ordinate of where to draw the image
static final double Y_VILLAGE=30;
public void draw(GraphicsContext r){
Image house=new Image("file:House.png",100,250,false,false);
//Define the xPosition for this House object
MyBuilding y=(MyBuilding)MyBuilding.create();
//Use the GraphicsContext to draw on the Canvas, we get an X position on where to draw from user dialog
//Draw the image
r.drawImage(house, y.getXposition(), Village.Y_VILLAGE);
}
}