Netbeans 如何使用场景生成器在JavaFXML上创建图像按钮?

Netbeans 如何使用场景生成器在JavaFXML上创建图像按钮?,netbeans,javafx,fxml,scenebuilder,Netbeans,Javafx,Fxml,Scenebuilder,我正在使用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 R

我正在使用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”中指定“@”和“$”符号,如


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


    <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并将其放置在按钮顶部。请注意层次结构。应该放在按钮里面。然后,您可以在inspector中调整大小、源和其他内容

在场景生成器中获得此结果

请参见:
    <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>