无法在JavaFX画布上显示图像

时间:2017-01-17 22:16:53

标签: canvas intellij-idea javafx

我刚刚开始尝试在JavaFX的世界中尝试在画布上显示图像时遇到问题。我在谷歌搜索了几个小时,然后空白了。

这是我的代码(我在网上搜索):

public class Main extends Application
{
  @Override
  public void start(Stage theStage)
  {
    theStage.setTitle( "Canvas Example" );

    Group root = new Group();
    Canvas canvas = new Canvas( 400, 400 );
    GraphicsContext gc = canvas.getGraphicsContext2D();

    gc.setFill( Color.RED );
    gc.setStroke( Color.BLACK );
    gc.setLineWidth(2);
    Font theFont = Font.font( "Times New Roman", FontWeight.BOLD, 48 );
    gc.setFont( theFont );
    gc.fillText( "Hello, World!", 60, 50 );
    gc.strokeText( "Hello, World!", 60, 50 );

    Image earth = null;
    try{
        earth = new Image("file:/res/earth.png");
    }catch(Exception e){
        System.out.println(e.toString());
    }

    System.out.println("height: "+earth.getHeight()+" width: "+earth.getWidth());
    gc.drawImage( earth, 180, 100 );

    root.getChildren().add( canvas );
    Scene theScene = new Scene( root );
    theStage.setScene( theScene );
    theStage.setResizable(false);
    theStage.show();

  }

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

它编译并运行正常,我没有捕到任何异常,Hello World文本显示正确,但没有图像。我已经尝试过绘制形状(如圆形和矩形),它们也可以正常工作,只有当我尝试显示图像时才会出现问题。 System.out.println中的getWidth()和getHeight()调用都返回0.0

我正在使用IntelliJ Idea 2016.3.3 IDE,Java JDK 1.8.0_112,现在我完全陷入了困境。非常感谢任何帮助。

0 个答案:

没有答案