如何用图像替换按钮的默认外观? [使用 Scene Builder 的 JavaFx]

How to replace the default appearance of a button with an Image? [JavaFx using Scene Builder]

我希望我的按钮看起来像一张您可以点击的图片。但是当我尝试在上面放一个图像(具有透明背景)时,按钮的外观仍然存在

这是我目前尝试过的方法:

<fx:define>
   <Image fx:id="btnImage" url="images/image.png" />
</fx:define>

<graphic>
        <ImageView image="$btnImage" />
</graphic>

在 .fxml 文件上

并且还使用场景生成器的 ImageView

但正如我之前所说,按钮的外观如下:

您可以看到按钮的灰色背景仍然存在,我希望它看起来像这样:

基本上是一张您可以点击的图片。我如何让它发挥作用?

为什么不使用代码而不是使用 Scene Builder 轻松地做到这一点?

package testing;

import java.io.File;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;

public class Controller implements Initializable {

    @FXML public Button myButton;

    @Override
    public void initialize(URL location, ResourceBundle resources)  {

        File imageFile = new File("images/image.png");
        Image image = new Image(imageFile.toURI().toString());
        ImageView imageView = new ImageView(image);

        myButton.setText("");
        myButton.setStyle("-fx-background-color: transparent;");
        myButton.setGraphic(imageView);


        // Add an event click to the button
        myButton.setOnAction(new EventHandler<ActionEvent>(){
            @Override
            public void handle(ActionEvent event) {
                System.out.println("You clicked: " + ((Button)event.getSource()).getId());
            }                
        });

    }
}

您只需要将按钮的背景颜色设置为透明即可。你可以这样做:button.setStyle("-fx-background-color: transparent");