0

我的项目中有两个课程。Main.javaVillage.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);
       
    }
}

我得到下面的空窗口,请帮助我在此处输入图像描述

4

1 回答 1

1

在查看您的代码时,我注意到您存在误解。为了能够在画布上绘图,您必须重写该paint方法并在那里进行绘图操作。我希望提示可以帮助您进一步。

于 2021-03-27T15:56:56.637 回答