Image javafx拉伸图像以填充按钮?

Image javafx拉伸图像以填充按钮?,image,button,javafx,Image,Button,Javafx,我正在用Java/JavaFX编写一个星际迷航游戏。我的想法是,游戏主屏幕是一个10x10的按钮网格窗格。企业号、克林贡号、行星号等所有游戏部件都会在按钮中显示为图标。通过这种方式,可以单击空间对象以选择它、扭曲到它、拍摄它,等等: 当然,这一切都取决于能否将我的小星际飞船图像分配到相应的按钮。我已经知道了如何将背景应用于按钮,但当我应用图像时,效果并不理想。以下是我迄今为止的游戏截图: 企业形象有点符合。。。但不是真的。一定有办法把船拉长,使之完全适合纽扣,但我还没有找到。我还必须找到一种在J

我正在用Java/JavaFX编写一个星际迷航游戏。我的想法是,游戏主屏幕是一个10x10的按钮网格窗格。企业号、克林贡号、行星号等所有游戏部件都会在按钮中显示为图标。通过这种方式,可以单击空间对象以选择它、扭曲到它、拍摄它,等等:

当然,这一切都取决于能否将我的小星际飞船图像分配到相应的按钮。我已经知道了如何将背景应用于按钮,但当我应用图像时,效果并不理想。以下是我迄今为止的游戏截图:

企业形象有点符合。。。但不是真的。一定有办法把船拉长,使之完全适合纽扣,但我还没有找到。我还必须找到一种在Java中实现这一点的方法,而不是CSS或FXML,因为Java代码必须移动图标

这是我的密码:

public void setUpBoard(){

  // set up 10x10 GridPane of Buttons...

  Image testImage = new Image(getClass().getResourceAsStream("Enterprise.png"));
  ImageView testImageView = new ImageView(testImage);
  testImageView.setFitWidth(55);            // My button is 55 x 37 pixels, according to the FXML
  testImageView.setFitHeight(37);
  //testImageView.fitWidthProperty().bind(gridButton37.widthProperty());   // This didn't work either
  //testImageView.fitHeightProperty().bind(gridButton37.widthProperty());
  gridButton37.setGraphic(testImageView);
}
我在谷歌上搜索了几个小时,但我找不到一个适用于这里的“拉伸图像到父级”解决方案。我有什么遗漏吗

    btnTest.setMinSize(55, 37);
    btnTest.setMaxSize(55, 37);

    Image image = new Image("/view/images/someImage.png", btnTest.getWidth(), btnTest.getHeight(), false, true, true);
    BackgroundImage bImage = new BackgroundImage(image, BackgroundRepeat.NO_REPEAT, BackgroundRepeat.NO_REPEAT, BackgroundPosition.CENTER, new BackgroundSize(btnTest.getWidth(), btnTest.getHeight(), true, true, true, false));

    Background backGround = new Background(bImage);
    btnTest.setBackground(backGround);

在我看来,你好像没有。使用带有适当参数的图像作为背景的一部分,可以将图像拉伸到指定的大小。或者,您可以在加载时为图像指定适当的大小,或者使用fitWidth/fitHeight,并且不保留ImageView的纵横比……此外,如果我建议,您可以将背景实现为枚举,因为您必须根据游戏规则将其设置为不同的按钮。-谢谢,这就成功了。我真的读过:浏览了你提供的文档,但我真的不知道如何将其直接应用于我的情况。有时候,一点帮助也会起到很大的作用