comment faire des boutons d'image sur java fxml en utilisant scene builder?


J'utilise netbeans et je veux utiliser un fichier multimédia à partir de mon bureau pour remplacer le bouton ennuyeux.

Donc c'est mon code. Je le veux pour que l'image devienne le bouton.

<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>

Merci d'avance :)

Author: urviguglani, 2015-05-10

3 answers

Dans votre fichier fxml, importez le package image:

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

Puis juste avant le bouton, en supposant l'image.png est situé sous "images/" répertoire et les "images/" est situé dans le même répertoire que .fxml:

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

Ensuite, ajoutez simplement ce qui suit à votre définition de bouton

<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>
 11
Author: AlmasB, 2015-05-10 09:10:32

La réponse ci-dessus est partiellement correcte, sans spécifier les symboles ' @ ' et ' $ 'dans l'url et dans" ImageView " comme

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

@ symbol est utilisé pour diffrentiate entre la chaîne et le répertoire relatif , si nous passons sans le symbole @ il prendra comme une chaîne plutôt que le répertoire relatif.

 2
Author: codeFreak, 2017-01-02 06:52:22
    <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>
 0
Author: , 2018-02-12 11:10:57