如何使用场景生成器在 java fxml 上制作图像按钮?

how to make image buttons on java fxml using scene builder?

我正在使用 netbeans 并想使用桌面上的媒体文件来替换无聊的按钮。

所以这是我的代码。 我想要它,所以图像成为按钮。

<Button layoutX="252.0" layoutY="177.0" mnemonicParsing="false" prefHeight="57.0" prefWidth="135.0" text="Button!" textFill="BLUE">
     <font>
        <Font name="Avenir Next Regular" size="13.0" />
     </font>
  </Button>

提前致谢:)

在您的 fxml 文件中,导入图像包:

<?import javafx.scene.image.*?>

然后就在按钮之前,假设 image.png 位于 "images/" 目录下并且 "images/" 位于与 .fxml 相同的目录中:

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

然后只需将以下内容添加到您的按钮定义中

<Button layoutX="252.0" layoutY="177.0" mnemonicParsing="false" prefHeight="57.0" prefWidth="135.0" text="Button!" textFill="BLUE">
     <font>
        <Font name="Avenir Next Regular" size="13.0" />
     </font>

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

以上答案部分正确,没有在 url 和 "ImageView" 中指定 '@' 和 '$' 符号,如

<Image fx:id="playbutImg" url="@image/image.png">
<ImageView image="$playbutImg" >

@符号用于区分字符串和相对目录,如果我们不带@符号传递,它将被视为字符串而不是相对目录。

    <fx:define>
            <Image fx:id="NewTracker" url="@resources/NewTracker.bmp"/>
        </fx:define>
        <Button layoutX="100.0" layoutY="100.0" mnemonicParsing="false" text="New Tracker" >
                <graphic>
                   <ImageView image="$NewTracker"/>
                </graphic>
        </Button>

问题询问如何使用场景生成器添加。方法如下..

将 imageview 从控件中拖放到按钮上。注意层次结构。它应该进入按钮内部。然后您可以在检查器中调整大小、来源和其他内容。

在场景生成器中得到这个结果